/**
 * @file monstdat.cpp
 *
 * Implementation of all monster data.
 */
#include "monstdat.h"
#include "items.h"

#include "monster.h"
#include "textdat.h"
#include "utils/language.h"

namespace devilution {

/** Contains the data related to each monster ID. */
const MonsterData MonstersData[] = {
	// clang-format off
	//               mName,                                  GraphicType,                        sndfile,                            TransFile,                         width, mImage, has_special, snd_special, has_trans, Frames[6],                  Rate[6],               mMinDLvl, mMaxDLvl, mLevel, mMinHP, mMaxHP, mAi,          mFlags                                                             , mInt, mHit, mAFNum, mMinDamage, mMaxDamage, mHit2, mAFNum2, mMinDamage2, mMaxDamage2, mArmorClass, mMonstClass         ,   mMagicRes                                                       , mMagicRes2                                                        , mSelFlag,     mTreasure,          mExp
	// TRANSLATORS: Monster Block start
/* MT_NZOMBIE */ { P_("monster", "Zombie"),                  "Zombie\\Zombie",   "Monsters\\Zombie\\Zombie%c%i.WAV",  nullptr,                             128,    799, false,       false,       false,     { 11, 24, 12,  6, 16,  0 }, { 4, 1, 1, 1, 1, 1 },         1,        3,      1,      4,      7, AI_ZOMBIE,    0                                                                  ,    0,   10,      8,          2,          5,     0,       0,           0,           0,           5, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,           54 },
/* MT_BZOMBIE */ { P_("monster", "Ghoul"),                   "Zombie\\Zombie",   "Monsters\\Zombie\\Zombie%c%i.WAV",  "Monsters\\Zombie\\Bluered.TRN",     128,    799, false,       false,       true,      { 11, 24, 12,  6, 16,  0 }, { 4, 1, 1, 1, 1, 1 },         2,        4,      2,      7,     11, AI_ZOMBIE,    0                                                                  ,    1,   10,      8,          3,         10,     0,       0,           0,           0,          10, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,           58 },
/* MT_GZOMBIE */ { P_("monster", "Rotting Carcass"),         "Zombie\\Zombie",   "Monsters\\Zombie\\Zombie%c%i.WAV",  "Monsters\\Zombie\\Grey.TRN",        128,    799, false,       false,       true,      { 11, 24, 12,  6, 16,  0 }, { 4, 1, 1, 1, 1, 1 },         2,        6,      4,     15,     25, AI_ZOMBIE,    0                                                                  ,    2,   25,      8,          5,         15,     0,       0,           0,           0,          15, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,          136 },
/* MT_YZOMBIE */ { P_("monster", "Black Death"),             "Zombie\\Zombie",   "Monsters\\Zombie\\Zombie%c%i.WAV",  "Monsters\\Zombie\\Yellow.TRN",      128,    799, false,       false,       true,      { 11, 24, 12,  6, 16,  0 }, { 4, 1, 1, 1, 1, 1 },         4,        8,      6,     25,     40, AI_ZOMBIE,    0                                                                  ,    3,   30,      8,          6,         22,     0,       0,           0,           0,          20, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          240 },
/* MT_RFALLSP */ { P_("monster", "Fallen One"),              "FalSpear\\Phall",  "Monsters\\FalSpear\\Phall%c%i.WAV", "Monsters\\FalSpear\\FallenT.TRN",   128,    543, true,        true,        true,      { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 },         1,        3,      1,      1,      4, AI_FALLEN,    0                                                                  ,    0,   15,      7,          1,          3,     0,       5,           0,           0,           0, MonsterClass::Animal,   0                                                               , 0                                                                 ,  3,                   0,           46 },
/* MT_DFALLSP */ { P_("monster", "Carver"),                  "FalSpear\\Phall",  "Monsters\\FalSpear\\Phall%c%i.WAV", "Monsters\\FalSpear\\Dark.TRN",      128,    543, true,        true,        true,      { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 },         2,        5,      3,      4,      8, AI_FALLEN,    0                                                                  ,    2,   20,      7,          2,          5,     0,       5,           0,           0,           5, MonsterClass::Animal,   0                                                               , 0                                                                 ,  3,                   0,           80 },
/* MT_YFALLSP */ { P_("monster", "Devil Kin"),               "FalSpear\\Phall",  "Monsters\\FalSpear\\Phall%c%i.WAV", nullptr,                             128,    543, true,        true,        false,     { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 },         3,        7,      5,     12,     24, AI_FALLEN,    0                                                                  ,    2,   25,      7,          3,          7,     0,       5,           0,           0,          10, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  3,                   0,          155 },
/* MT_BFALLSP */ { P_("monster", "Dark One"),                "FalSpear\\Phall",  "Monsters\\FalSpear\\Phall%c%i.WAV", "Monsters\\FalSpear\\Blue.TRN",      128,    543, true,        true,        true,      { 11, 11, 13, 11, 18, 13 }, { 3, 1, 1, 1, 1, 1 },         5,        9,      7,     20,     36, AI_FALLEN,    0                                                                  ,    3,   30,      7,          4,          8,     0,       5,           0,           0,          15, MonsterClass::Animal,                                                   IMMUNE_NULL_40  ,                              RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          255 },
/* MT_WSKELAX */ { P_("monster", "Skeleton"),                "SkelAxe\\SklAx",   "Monsters\\SkelAxe\\SklAx%c%i.WAV",  "Monsters\\SkelAxe\\White.TRN",      128,    553, true,        false,       true,      { 12,  8, 13,  6, 17, 16 }, { 5, 1, 1, 1, 1, 1 },         1,        3,      1,      2,      4, AI_SKELSD,    0                                                                  ,    0,   20,      8,          1,          4,     0,       0,           0,           0,           0, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,           64 },
/* MT_TSKELAX */ { P_("monster", "Corpse Axe"),              "SkelAxe\\SklAx",   "Monsters\\SkelAxe\\SklAx%c%i.WAV",  "Monsters\\SkelAxe\\Skelt.TRN",      128,    553, true,        false,       true,      { 12,  8, 13,  6, 17, 16 }, { 4, 1, 1, 1, 1, 1 },         2,        5,      2,      4,      7, AI_SKELSD,    0                                                                  ,    1,   25,      8,          3,          5,     0,       0,           0,           0,           0, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,           68 },
/* MT_RSKELAX */ { P_("monster", "Burning Dead"),            "SkelAxe\\SklAx",   "Monsters\\SkelAxe\\SklAx%c%i.WAV",  nullptr,                             128,    553, true,        false,       false,     { 12,  8, 13,  6, 17, 16 }, { 2, 1, 1, 1, 1, 1 },         2,        6,      4,      8,     12, AI_SKELSD,    0                                                                  ,    2,   30,      8,          3,          7,     0,       0,           0,           0,           5, MonsterClass::Undead,   IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,          154 },
/* MT_XSKELAX */ { P_("monster", "Horror"),                  "SkelAxe\\SklAx",   "Monsters\\SkelAxe\\SklAx%c%i.WAV",  "Monsters\\SkelAxe\\Black.TRN",      128,    553, true,        false,       true,      { 12,  8, 13,  6, 17, 16 }, { 3, 1, 1, 1, 1, 1 },         4,        8,      6,     12,     20, AI_SKELSD,    0                                                                  ,    3,   35,      8,          4,          9,     0,       0,           0,           0,          15, MonsterClass::Undead,   IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          264 },
/* MT_RFALLSD */ { P_("monster", "Fallen One"),              "FalSword\\Fall",   "Monsters\\FalSword\\Fall%c%i.WAV",  "Monsters\\FalSword\\FallenT.TRN",   128,    623, true,        true,        true,      { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 },         1,        3,      1,      2,      5, AI_FALLEN,    0                                                                  ,    0,   15,      8,          1,          4,     0,       5,           0,           0,          10, MonsterClass::Animal,   0                                                               , 0                                                                 ,  3,                   0,           52 },
/* MT_DFALLSD */ { P_("monster", "Carver"),                  "FalSword\\Fall",   "Monsters\\FalSword\\Fall%c%i.WAV",  "Monsters\\FalSword\\Dark.TRN",      128,    623, true,        true,        true,      { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 },         2,        5,      3,      5,      9, AI_FALLEN,    0                                                                  ,    1,   20,      8,          2,          7,     0,       5,           0,           0,          15, MonsterClass::Animal,   0                                                               , 0                                                                 ,  3,                   0,           90 },
/* MT_YFALLSD */ { P_("monster", "Devil Kin"),               "FalSword\\Fall",   "Monsters\\FalSword\\Fall%c%i.WAV",  nullptr,                             128,    623, true,        true,        false,     { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 },         3,        7,      5,     16,     24, AI_FALLEN,    0                                                                  ,    2,   25,      8,          4,         10,     0,       5,           0,           0,          20, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  3,                   0,          180 },
/* MT_BFALLSD */ { P_("monster", "Dark One"),                "FalSword\\Fall",   "Monsters\\FalSword\\Fall%c%i.WAV",  "Monsters\\FalSword\\Blue.TRN",      128,    623, true,        true,        true,      { 12, 12, 13, 11, 14, 15 }, { 3, 1, 1, 1, 1, 1 },         5,        9,      7,     24,     36, AI_FALLEN,    0                                                                  ,    3,   30,      8,          4,         12,     0,       5,           0,           0,          25, MonsterClass::Animal,                                                   IMMUNE_NULL_40  ,                              RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          280 },
/* MT_NSCAV   */ { P_("monster", "Scavenger"),               "Scav\\Scav",       "Monsters\\Scav\\Scav%c%i.WAV",      nullptr,                             128,    410, true,        false,       false,     { 12,  8, 12,  6, 20, 11 }, { 2, 1, 1, 1, 1, 1 },         1,        4,      2,      3,      6, AI_SCAV,      0                                                                  ,    0,   20,      7,          1,          5,     0,       0,           0,           0,          10, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  3,                   0,           80 },
/* MT_BSCAV   */ { P_("monster", "Plague Eater"),            "Scav\\Scav",       "Monsters\\Scav\\Scav%c%i.WAV",      "Monsters\\Scav\\ScavBr.TRN",        128,    410, true,        false,       true,      { 12,  8, 12,  6, 20, 11 }, { 2, 1, 1, 1, 1, 1 },         3,        6,      4,     12,     24, AI_SCAV,      0                                                                  ,    1,   30,      7,          1,          8,     0,       0,           0,           0,          20, MonsterClass::Animal,   0                                                               ,                              RESIST_LIGHTNING                     ,  3,                   0,          188 },
/* MT_WSCAV   */ { P_("monster", "Shadow Beast"),            "Scav\\Scav",       "Monsters\\Scav\\Scav%c%i.WAV",      "Monsters\\Scav\\ScavBe.TRN",        128,    410, true,        false,       true,      { 12,  8, 12,  6, 20, 11 }, { 2, 1, 1, 1, 1, 1 },         4,        8,      6,     24,     36, AI_SCAV,      0                                                                  ,    2,   35,      7,          3,         12,     0,       0,           0,           0,          25, MonsterClass::Animal,                                                   IMMUNE_NULL_40  ,                RESIST_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,          375 },
/* MT_YSCAV   */ { P_("monster", "Bone Gasher"),             "Scav\\Scav",       "Monsters\\Scav\\Scav%c%i.WAV",      "Monsters\\Scav\\ScavW.TRN",         128,    410, true,        false,       true,      { 12,  8, 12,  6, 20, 11 }, { 2, 1, 1, 1, 1, 1 },         6,       10,      8,     28,     40, AI_SCAV,      0                                                                  ,    3,   35,      7,          5,         15,     0,       0,           0,           0,          30, MonsterClass::Animal,   RESIST_MAGIC |                                  IMMUNE_NULL_40  ,                              RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          552 },
/* MT_WSKELBW */ { P_("monster", "Skeleton"),                "SkelBow\\SklBw",   "Monsters\\SkelBow\\SklBw%c%i.WAV",  "Monsters\\SkelBow\\White.TRN",      128,    567, true,        false,       true,      {  9,  8, 16,  5, 16, 16 }, { 4, 1, 1, 1, 1, 1 },         2,        5,      3,      2,      4, AI_SKELBOW,   0                                                                  ,    0,   15,     12,          1,          2,     0,       0,           0,           0,           0, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          110 },
/* MT_TSKELBW */ { P_("monster", "Corpse Bow"),              "SkelBow\\SklBw",   "Monsters\\SkelBow\\SklBw%c%i.WAV",  "Monsters\\SkelBow\\Skelt.TRN",      128,    567, true,        false,       true,      {  9,  8, 16,  5, 16, 16 }, { 4, 1, 1, 1, 1, 1 },         3,        7,      5,      8,     16, AI_SKELBOW,   0                                                                  ,    1,   25,     12,          1,          4,     0,       0,           0,           0,           0, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          210 },
/* MT_RSKELBW */ { P_("monster", "Burning Dead"),            "SkelBow\\SklBw",   "Monsters\\SkelBow\\SklBw%c%i.WAV",  nullptr,                             128,    567, true,        false,       false,     {  9,  8, 16,  5, 16, 16 }, { 2, 1, 1, 1, 1, 1 },         5,        9,      7,     10,     24, AI_SKELBOW,   0                                                                  ,    2,   30,     12,          1,          6,     0,       0,           0,           0,           5, MonsterClass::Undead,   IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,          364 },
/* MT_XSKELBW */ { P_("monster", "Horror"),                  "SkelBow\\SklBw",   "Monsters\\SkelBow\\SklBw%c%i.WAV",  "Monsters\\SkelBow\\Black.TRN",      128,    567, true,        false,       true,      {  9,  8, 16,  5, 16, 16 }, { 3, 1, 1, 1, 1, 1 },         7,       11,      9,     15,     45, AI_SKELBOW,   0                                                                  ,    3,   35,     12,          2,          9,     0,       0,           0,           0,          15, MonsterClass::Undead,   IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          594 },
/* MT_WSKELSD */ { P_("monster", "Skeleton Captain"),        "SkelSd\\SklSr",    "Monsters\\SkelSd\\SklSr%c%i.WAV",   "Monsters\\SkelSd\\White.TRN",       128,    575, true,        true,        true,      { 13,  8, 12,  7, 15, 16 }, { 4, 1, 1, 1, 1, 1 },         1,        4,      2,      3,      6, AI_SKELSD,    0                                                                  ,    0,   20,      8,          2,          7,     0,       0,           0,           0,          10, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,           90 },
/* MT_TSKELSD */ { P_("monster", "Corpse Captain"),          "SkelSd\\SklSr",    "Monsters\\SkelSd\\SklSr%c%i.WAV",   "Monsters\\SkelSd\\Skelt.TRN",       128,    575, true,        false,       true,      { 13,  8, 12,  7, 15, 16 }, { 4, 1, 1, 1, 1, 1 },         2,        6,      4,     12,     20, AI_SKELSD,    0                                                                  ,    1,   30,      8,          3,          9,     0,       0,           0,           0,           5, MonsterClass::Undead,   IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          200 },
/* MT_RSKELSD */ { P_("monster", "Burning Dead Captain"),    "SkelSd\\SklSr",    "Monsters\\SkelSd\\SklSr%c%i.WAV",   nullptr,                             128,    575, true,        false,       false,     { 13,  8, 12,  7, 15, 16 }, { 4, 1, 1, 1, 1, 1 },         4,        8,      6,     16,     30, AI_SKELSD,    0                                                                  ,    2,   35,      8,          4,         10,     0,       0,           0,           0,          15, MonsterClass::Undead,   IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,          393 },
/* MT_XSKELSD */ { P_("monster", "Horror Captain"),          "SkelSd\\SklSr",    "Monsters\\SkelSd\\SklSr%c%i.WAV",   "Monsters\\SkelSd\\Black.TRN",       128,    575, true,        false,       true,      { 13,  8, 12,  7, 15, 16 }, { 4, 1, 1, 1, 1, 1 },         6,       10,      8,     35,     50, AI_SKELSD,                                     MFLAG_SEARCH                      ,    3,   40,      8,          5,         14,     0,       0,           0,           0,          30, MonsterClass::Undead,   IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          604 },
/* MT_INVILORD*/ { P_("monster", "Invisible Lord"),          "TSneak\\TSneak",   "Monsters\\TSneak\\Sneakl%c%i.WAV",  nullptr,                             128,    800, false,       false,       false,     { 13, 13, 15, 11, 16,  0 }, { 2, 1, 1, 1, 1, 1 },        36,       39,     14,    278,    278, AI_SKELSD,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   65,      8,         16,         30,     0,       0,           0,           0,          60, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         2000 },
/* MT_SNEAK   */ { P_("monster", "Hidden"),                  "Sneak\\Sneak",     "Monsters\\Sneak\\Sneak%c%i.WAV",    nullptr,                             128,    992, true,        false,       false,     { 16,  8, 12,  8, 24, 15 }, { 2, 1, 1, 1, 1, 1 },         3,        8,      5,      8,     24, AI_SNEAK,     MFLAG_HIDDEN                                                       ,    0,   35,      8,          3,          6,     0,       0,           0,           0,          25, MonsterClass::Demon,    0                                                               ,                                                 IMMUNE_NULL_40    ,  3,                   0,          278 },
/* MT_STALKER */ { P_("monster", "Stalker"),                 "Sneak\\Sneak",     "Monsters\\Sneak\\Sneak%c%i.WAV",    "Monsters\\Sneak\\Sneakv2.TRN",      128,    992, true,        false,       true,      { 16,  8, 12,  8, 24, 15 }, { 2, 1, 1, 1, 1, 1 },         8,       12,      9,     30,     45, AI_SNEAK,     MFLAG_HIDDEN |                   MFLAG_SEARCH                      ,    1,   40,      8,          8,         16,     0,       0,           0,           0,          30, MonsterClass::Demon,    0                                                               ,                                                 IMMUNE_NULL_40    ,  3,                   0,          630 },
/* MT_UNSEEN  */ { P_("monster", "Unseen"),                  "Sneak\\Sneak",     "Monsters\\Sneak\\Sneak%c%i.WAV",    "Monsters\\Sneak\\Sneakv3.TRN",      128,    992, true,        false,       true,      { 16,  8, 12,  8, 24, 15 }, { 2, 1, 1, 1, 1, 1 },        10,       14,     11,     35,     50, AI_SNEAK,     MFLAG_HIDDEN |                   MFLAG_SEARCH                      ,    2,   45,      8,         12,         20,     0,       0,           0,           0,          30, MonsterClass::Demon,    RESIST_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          935 },
/* MT_ILLWEAV */ { P_("monster", "Illusion Weaver"),         "Sneak\\Sneak",     "Monsters\\Sneak\\Sneak%c%i.WAV",    "Monsters\\Sneak\\Sneakv1.TRN",      128,    992, true,        false,       true,      { 16,  8, 12,  8, 24, 15 }, { 2, 1, 1, 1, 1, 1 },        14,       18,     13,     40,     60, AI_SNEAK,     MFLAG_HIDDEN |                   MFLAG_SEARCH                      ,    3,   60,      8,         16,         24,     0,       0,           0,           0,          30, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE                                      , IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,         1500 },
/* MT_LRDSAYTR*/ { P_("monster", "Satyr Lord"),              "GoatLord\\GoatL",  "Monsters\\newsfx\\Satyr%c%i.WAV",   nullptr,                             160,    800, false,       false,       false,     { 13, 13, 14,  9, 16,  0 }, { 2, 1, 1, 1, 1, 1 },        40,       43,     28,    160,    200, AI_SKELSD,                                     MFLAG_SEARCH                      ,    3,   90,      8,         20,         30,     0,       0,           0,           0,          70, MonsterClass::Animal,                  RESIST_FIRE | RESIST_LIGHTNING                   , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  3,                   0,         2800 },
/* MT_NGOATMC */ { P_("monster", "Flesh Clan"),              "GoatMace\\Goat",   "Monsters\\GoatMace\\Goat%c%i.WAV",  nullptr,                             128,   1030, true,        false,       false,     { 12,  8, 12,  6, 20, 12 }, { 2, 1, 1, 1, 1, 1 },         6,       10,      8,     30,     45, AI_GOATMC,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    0,   50,      8,          4,         10,     0,       0,           0,           0,          40, MonsterClass::Demon,    0                                                               , 0                                                                 ,  3,                   0,          460 },
/* MT_BGOATMC */ { P_("monster", "Stone Clan"),              "GoatMace\\Goat",   "Monsters\\GoatMace\\Goat%c%i.WAV",  "Monsters\\GoatMace\\Beige.TRN",     128,   1030, true,        false,       true,      { 12,  8, 12,  6, 20, 12 }, { 2, 1, 1, 1, 1, 1 },         8,       12,     10,     40,     55, AI_GOATMC,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    1,   60,      8,          6,         12,     0,       0,           0,           0,          40, MonsterClass::Demon,    RESIST_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          685 },
/* MT_RGOATMC */ { P_("monster", "Fire Clan"),               "GoatMace\\Goat",   "Monsters\\GoatMace\\Goat%c%i.WAV",  "Monsters\\GoatMace\\Red.TRN",       128,   1030, true,        false,       true,      { 12,  8, 12,  6, 20, 12 }, { 2, 1, 1, 1, 1, 1 },        10,       14,     12,     50,     65, AI_GOATMC,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,   70,      8,          8,         16,     0,       0,           0,           0,          45, MonsterClass::Demon,                   RESIST_FIRE                                      ,                IMMUNE_FIRE                                        ,  3,                   0,          906 },
/* MT_GGOATMC */ { P_("monster", "Night Clan"),              "GoatMace\\Goat",   "Monsters\\GoatMace\\Goat%c%i.WAV",  "Monsters\\GoatMace\\Gray.TRN",      128,   1030, true,        false,       true,      { 12,  8, 12,  6, 20, 12 }, { 2, 1, 1, 1, 1, 1 },        12,       16,     14,     55,     70, AI_GOATMC,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   80,      8,         10,         20,    15,       0,          30,          30,          50, MonsterClass::Demon,    RESIST_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,         1190 },
/* MT_FIEND   */ { P_("monster", "Fiend"),                   "Bat\\Bat",         "Monsters\\Bat\\Bat%c%i.WAV",        "Monsters\\Bat\\red.trn",             96,    364, false,       false,       true,      {  9, 13, 10,  9, 13,  0 }, { 1, 1, 1, 1, 1, 1 },         2,        5,      3,      3,      6, AI_BAT,       0                                                                  ,    0,   35,      5,          1,          6,     0,       0,           0,           0,           0, MonsterClass::Animal,   0                                                               , 0                                                                 ,  6,            T_NODROP,          102 },
/* MT_BLINK   */ { P_("monster", "Blink"),                   "Bat\\Bat",         "Monsters\\Bat\\Bat%c%i.WAV",        nullptr,                              96,    364, false,       false,       false,     {  9, 13, 10,  9, 13,  0 }, { 1, 1, 1, 1, 1, 1 },         5,        9,      7,     12,     28, AI_BAT,       0                                                                  ,    1,   45,      5,          1,          8,     0,       0,           0,           0,          15, MonsterClass::Animal,   0                                                               , 0                                                                 ,  6,            T_NODROP,          340 },
/* MT_GLOOM   */ { P_("monster", "Gloom"),                   "Bat\\Bat",         "Monsters\\Bat\\Bat%c%i.WAV",        "Monsters\\Bat\\grey.trn",            96,    364, false,       false,       true,      {  9, 13, 10,  9, 13,  0 }, { 1, 1, 1, 1, 1, 1 },         7,       11,      9,     28,     36, AI_BAT,                                        MFLAG_SEARCH                      ,    2,   70,      5,          4,         12,     0,       0,           0,           0,          35, MonsterClass::Animal,   RESIST_MAGIC                                                    , RESIST_MAGIC |                                  IMMUNE_NULL_40    ,  6,            T_NODROP,          509 },
/* MT_FAMILIAR*/ { P_("monster", "Familiar"),                "Bat\\Bat",         "Monsters\\Bat\\Bat%c%i.WAV",        "Monsters\\Bat\\orange.trn",          96,    364, false,       false,       true,      {  9, 13, 10,  9, 13,  0 }, { 1, 1, 1, 1, 1, 1 },        11,       15,     13,     20,     35, AI_BAT,                                        MFLAG_SEARCH                      ,    3,   50,      5,          4,         16,     0,       0,           0,           0,          35, MonsterClass::Demon,    RESIST_MAGIC |               IMMUNE_LIGHTNING                   , RESIST_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  6,            T_NODROP,          448 },
/* MT_NGOATBW */ { P_("monster", "Flesh Clan"),              "GoatBow\\GoatB",   "Monsters\\GoatBow\\GoatB%c%i.WAV",  nullptr,                             128,   1040, false,       false,       false,     { 12,  8, 16,  6, 20,  0 }, { 3, 1, 1, 1, 1, 1 },         6,       10,      8,     20,     35, AI_GOATBOW,                                                   MFLAG_CAN_OPEN_DOOR,    0,   35,     13,          1,          7,     0,       0,           0,           0,          35, MonsterClass::Demon,    0                                                               , 0                                                                 ,  3,                   0,          448 },
/* MT_BGOATBW */ { P_("monster", "Stone Clan"),              "GoatBow\\GoatB",   "Monsters\\GoatBow\\GoatB%c%i.WAV",  "Monsters\\GoatBow\\Beige.TRN",      128,   1040, false,       false,       true,      { 12,  8, 16,  6, 20,  0 }, { 3, 1, 1, 1, 1, 1 },         8,       12,     10,     30,     40, AI_GOATBOW,                                                   MFLAG_CAN_OPEN_DOOR,    1,   40,     13,          2,          9,     0,       0,           0,           0,          35, MonsterClass::Demon,    RESIST_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,          645 },
/* MT_RGOATBW */ { P_("monster", "Fire Clan"),               "GoatBow\\GoatB",   "Monsters\\GoatBow\\GoatB%c%i.WAV",  "Monsters\\GoatBow\\Red.TRN",        128,   1040, false,       false,       true,      { 12,  8, 16,  6, 20,  0 }, { 3, 1, 1, 1, 1, 1 },        10,       14,     12,     40,     50, AI_GOATBOW,                                    MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,   45,     13,          3,         11,     0,       0,           0,           0,          35, MonsterClass::Demon,                   RESIST_FIRE                                      ,                IMMUNE_FIRE                                        ,  3,                   0,          822 },
/* MT_GGOATBW */ { P_("monster", "Night Clan"),              "GoatBow\\GoatB",   "Monsters\\GoatBow\\GoatB%c%i.WAV",  "Monsters\\GoatBow\\Gray.TRN",       128,   1040, false,       false,       true,      { 12,  8, 16,  6, 20,  0 }, { 3, 1, 1, 1, 1, 1 },        12,       16,     14,     50,     65, AI_GOATBOW,                                    MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   50,     13,          4,         13,    15,       0,           0,           0,          40, MonsterClass::Demon,    RESIST_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  3,                   0,         1092 },
/* MT_NACID   */ { P_("monster", "Acid Beast"),              "Acid\\Acid",       "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                             128,    716, true,        true,        false,     { 13,  8, 12,  8, 16, 12 }, { 1, 1, 1, 1, 1, 1 },        10,       14,     11,     40,     66, AI_ACID,      0                                                                  ,    0,   40,      8,          4,         12,    25,       8,           0,           0,          30, MonsterClass::Animal,                                                   IMMUNE_ACID     , IMMUNE_MAGIC |                                  IMMUNE_ACID       ,  3,                   0,          846 },
/* MT_RACID   */ { P_("monster", "Poison Spitter"),          "Acid\\Acid",       "Monsters\\Acid\\Acid%c%i.WAV",      "Monsters\\Acid\\AcidBlk.TRN",       128,    716, true,        true,        true,      { 13,  8, 12,  8, 16, 12 }, { 1, 1, 1, 1, 1, 1 },        14,       18,     15,     60,     85, AI_ACID,      0                                                                  ,    1,   45,      8,          4,         16,    25,       8,           0,           0,          30, MonsterClass::Animal,                                                   IMMUNE_ACID     , IMMUNE_MAGIC |                                  IMMUNE_ACID       ,  3,                   0,         1248 },
/* MT_BACID   */ { P_("monster", "Pit Beast"),               "Acid\\Acid",       "Monsters\\Acid\\Acid%c%i.WAV",      "Monsters\\Acid\\AcidB.TRN",         128,    716, true,        true,        true,      { 13,  8, 12,  8, 16, 12 }, { 1, 1, 1, 1, 1, 1 },        18,       22,     21,     80,    110, AI_ACID,      0                                                                  ,    2,   55,      8,          8,         18,    35,       8,           0,           0,          35, MonsterClass::Animal,   RESIST_MAGIC |                                  IMMUNE_ACID     , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_ACID       ,  3,                   0,         2060 },
/* MT_XACID   */ { P_("monster", "Lava Maw"),                "Acid\\Acid",       "Monsters\\Acid\\Acid%c%i.WAV",      "Monsters\\Acid\\AcidR.TRN",         128,    716, true,        true,        true,      { 13,  8, 12,  8, 16, 12 }, { 1, 1, 1, 1, 1, 1 },        22,       27,     25,    100,    150, AI_ACID,      0                                                                  ,    3,   65,      8,         10,         20,    40,       8,           0,           0,          35, MonsterClass::Animal,   RESIST_MAGIC | IMMUNE_FIRE |                    IMMUNE_ACID     , IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_ACID       ,  3,                   0,         2940 },
/* MT_SKING   */ { P_("monster", "Skeleton King"),           "SKing\\SKing",     "Monsters\\SKing\\SKing%c%i.WAV",    "Monsters\\SkelAxe\\White.TRN",      160,   1010, true,        true,        true,      {  8,  6, 16,  6, 16,  6 }, { 2, 1, 1, 1, 1, 2 },         6,        6,      9,    140,    140, AI_SKELKING,                                   MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   60,      8,          6,         16,     0,       0,           0,           0,          70, MonsterClass::Undead,   IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,T_UNIQ+UITEM_SKCROWN,          570 },
/* MT_CLEAVER */ { P_("monster", "The Butcher"),             "FatC\\FatC",       "Monsters\\FatC\\FatC%c%i.WAV",      nullptr,                             128,    980, false,       false,       false,     { 10,  8, 12,  6, 16,  0 }, { 1, 1, 1, 1, 1, 1 },         0,        0,      1,    320,    320, AI_CLEAVER,   0                                                                  ,    3,   50,      8,          6,         12,     0,       0,           0,           0,          50, MonsterClass::Demon,                   RESIST_FIRE | RESIST_LIGHTNING                   , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  3,T_UNIQ+UITEM_CLEAVER,          710 },
/* MT_FAT     */ { P_("monster", "Overlord"),                "Fat\\Fat",         "Monsters\\Fat\\Fat%c%i.WAV",        nullptr,                             128,   1130, true,        false,       false,     {  8, 10, 15,  6, 16, 10 }, { 4, 1, 1, 1, 1, 1 },         8,       12,     10,     60,     80, AI_FAT,       0                                                                  ,    0,   55,      8,          6,         12,     0,       0,           0,           0,          55, MonsterClass::Demon,    0                                                               ,                RESIST_FIRE                                        ,  3,                   0,          635 },
/* MT_MUDMAN, */ { P_("monster", "Mud Man"),                 "Fat\\Fat",         "Monsters\\Fat\\Fat%c%i.WAV",        "Monsters\\Fat\\Blue.TRN",           128,   1130, true,        false,       true,      {  8, 10, 15,  6, 16, 10 }, { 4, 1, 1, 1, 1, 1 },        13,       17,     14,    100,    125, AI_FAT,                                        MFLAG_SEARCH                      ,    1,   60,      8,          8,         16,     0,       0,           0,           0,          60, MonsterClass::Demon,    0                                                               ,                              IMMUNE_LIGHTNING                     ,  3,                   0,         1165 },
/* MT_TOAD    */ { P_("monster", "Toad Demon"),              "Fat\\Fat",         "Monsters\\Fat\\Fat%c%i.WAV",        "Monsters\\Fat\\FatB.TRN",           128,   1130, true,        false,       true,      {  8, 10, 15,  6, 16, 10 }, { 4, 1, 1, 1, 1, 1 },        15,       19,     16,    135,    160, AI_FAT,                                        MFLAG_SEARCH                      ,    2,   70,      8,          8,         16,    40,       0,           8,          20,          65, MonsterClass::Demon,    IMMUNE_MAGIC                                                    , IMMUNE_MAGIC |               RESIST_LIGHTNING                     ,  3,                   0,         1380 },
/* MT_FLAYED  */ { P_("monster", "Flayed One"),              "Fat\\Fat",         "Monsters\\Fat\\Fat%c%i.WAV",        "Monsters\\Fat\\FatF.TRN",           128,   1130, true,        false,       true,      {  8, 10, 15,  6, 16, 10 }, { 4, 1, 1, 1, 1, 1 },        19,       23,     20,    160,    200, AI_FAT,                                        MFLAG_SEARCH                      ,    3,   85,      8,         10,         20,     0,       0,           0,           0,          70, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  3,                   0,         2058 },
/* MT_WYRM    */ { P_("monster", "Wyrm"),                    "Worm\\Worm",       "Monsters\\Fat\\Fat%c%i.WAV",        nullptr,                             160,   2420, false,       false,       false,     { 13, 13, 13, 11, 19,  0 }, { 1, 1, 1, 1, 1, 1 },         9,       13,     11,     60,     90, AI_SKELSD,    0                                                                  ,    0,   40,      8,          4,         10,     0,       0,           0,           0,          25, MonsterClass::Animal,   RESIST_MAGIC                                                    , RESIST_MAGIC                                                      ,  3,                   0,          660 },
/* MT_CAVSLUG */ { P_("monster", "Cave Slug"),               "Worm\\Worm",       "Monsters\\Fat\\Fat%c%i.WAV",        nullptr,                             160,   2420, false,       false,       false,     { 13, 13, 13, 11, 19,  0 }, { 1, 1, 1, 1, 1, 1 },        11,       15,     13,     75,    110, AI_SKELSD,    0                                                                  ,    1,   50,      8,          6,         13,     0,       0,           0,           0,          30, MonsterClass::Animal,   RESIST_MAGIC                                                    , RESIST_MAGIC                                                      ,  3,                   0,          994 },
/* MT_DVLWYRM */ { P_("monster", "Devil Wyrm"),              "Worm\\Worm",       "Monsters\\Fat\\Fat%c%i.WAV",        nullptr,                             160,   2420, false,       false,       false,     { 13, 13, 13, 11, 19,  0 }, { 1, 1, 1, 1, 1, 1 },        13,       17,     15,    100,    140, AI_SKELSD,    0                                                                  ,    2,   55,      8,          8,         16,     0,       0,           0,           0,          30, MonsterClass::Animal,   RESIST_MAGIC | RESIST_FIRE                                      , RESIST_MAGIC | RESIST_FIRE                                        ,  3,                   0,         1320 },
/* MT_DEVOUR  */ { P_("monster", "Devourer"),                "Worm\\Worm",       "Monsters\\Fat\\Fat%c%i.WAV",        nullptr,                             160,   2420, false,       false,       false,     { 13, 13, 13, 11, 19,  0 }, { 1, 1, 1, 1, 1, 1 },        15,       19,     17,    125,    200, AI_SKELSD,    0                                                                  ,    3,   60,      8,         10,         20,     0,       0,           0,           0,          35, MonsterClass::Animal,   RESIST_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , RESIST_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40    ,  3,                   0,         1827 },
/* MT_NMAGMA  */ { P_("monster", "Magma Demon"),             "Magma\\Magma",     "Monsters\\Magma\\Magma%c%i.WAV",    nullptr,                             128,   1680, true,        true,        false,     {  8, 10, 14,  7, 18, 18 }, { 2, 1, 1, 1, 1, 1 },        14,       17,     13,     50,     70, AI_MAGMA,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    0,   45,      4,          2,         10,    50,      13,           0,           0,          45, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         1076 },
/* MT_YMAGMA  */ { P_("monster", "Blood Stone"),             "Magma\\Magma",     "Monsters\\Magma\\Magma%c%i.WAV",    "Monsters\\Magma\\Yellow.TRN",       128,   1680, true,        true,        true,      {  8, 10, 14,  7, 18, 18 }, { 2, 1, 1, 1, 1, 1 },        15,       19,     14,     55,     75, AI_MAGMA,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    1,   50,      4,          2,         12,    50,      14,           0,           0,          45, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         1309 },
/* MT_BMAGMA  */ { P_("monster", "Hell Stone"),              "Magma\\Magma",     "Monsters\\Magma\\Magma%c%i.WAV",    "Monsters\\Magma\\Blue.TRN",         128,   1680, true,        true,        true,      {  8, 10, 14,  7, 18, 18 }, { 2, 1, 1, 1, 1, 1 },        16,       20,     16,     60,     80, AI_MAGMA,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,   60,      4,          2,         20,    60,      14,           0,           0,          50, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         1680 },
/* MT_WMAGMA  */ { P_("monster", "Lava Lord"),               "Magma\\Magma",     "Monsters\\Magma\\Magma%c%i.WAV",    "Monsters\\Magma\\Wierd.TRN",        128,   1680, true,        true,        true,      {  8, 10, 14,  7, 18, 18 }, { 2, 1, 1, 1, 1, 1 },        17,       21,     18,     70,     85, AI_MAGMA,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   75,      4,          4,         24,    60,      14,           0,           0,          60, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         2124 },
/* MT_HORNED  */ { P_("monster", "Horned Demon"),            "Rhino\\Rhino",     "Monsters\\Rhino\\Rhino%c%i.WAV",    nullptr,                             160,   1630, true,        true,        false,     {  8,  8, 14,  6, 16,  6 }, { 2, 1, 1, 1, 1, 1 },        12,       16,     13,     40,     80, AI_RHINO,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    0,   60,      7,          2,         16,   100,       0,           5,          32,          40, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  7,                   0,         1172 },
/* MT_MUDRUN  */ { P_("monster", "Mud Runner"),              "Rhino\\Rhino",     "Monsters\\Rhino\\Rhino%c%i.WAV",    "Monsters\\Rhino\\Orange.TRN",       160,   1630, true,        true,        true,      {  8,  8, 14,  6, 16,  6 }, { 2, 1, 1, 1, 1, 1 },        14,       18,     15,     50,     90, AI_RHINO,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    1,   70,      7,          6,         18,   100,       0,          12,          36,          45, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  7,                   0,         1404 },
/* MT_FROSTC  */ { P_("monster", "Frost Charger"),           "Rhino\\Rhino",     "Monsters\\Rhino\\Rhino%c%i.WAV",    "Monsters\\Rhino\\Blue.TRN",         160,   1630, true,        true,        true,      {  8,  8, 14,  6, 16,  6 }, { 2, 1, 1, 1, 1, 1 },        16,       20,     17,     60,    100, AI_RHINO,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,   80,      7,          8,         20,   100,       0,          20,          40,          50, MonsterClass::Animal,   IMMUNE_MAGIC |               RESIST_LIGHTNING                   , IMMUNE_MAGIC |               RESIST_LIGHTNING                     ,  7,                   0,         1720 },
/* MT_OBLORD  */ { P_("monster", "Obsidian Lord"),           "Rhino\\Rhino",     "Monsters\\Rhino\\Rhino%c%i.WAV",    "Monsters\\Rhino\\RhinoB.TRN",       160,   1630, true,        true,        true,      {  8,  8, 14,  6, 16,  6 }, { 2, 1, 1, 1, 1, 1 },        18,       22,     19,     70,    110, AI_RHINO,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   90,      7,         10,         22,   100,       0,          20,          50,          55, MonsterClass::Animal,   IMMUNE_MAGIC |               RESIST_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  7,                   0,         1809 },
/* MT_BONEDMN */ { P_("monster", "oldboned"),                "Demskel\\Demskl",  "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv3.TRN",        128,   1740, true,        true,        false,     { 10,  8, 20,  6, 24, 16 }, { 3, 1, 1, 1, 1, 1 },        46,       47,     12,     70,     70, AI_STORM,     0                                                                  ,    0,   60,      8,          6,         14,    12,       0,           0,           0,          50, MonsterClass::Demon,    IMMUNE_MAGIC |                                  IMMUNE_NULL_40  , IMMUNE_MAGIC |                                  IMMUNE_NULL_40    ,  7,                   0,         1344 },
/* MT_REDDTH  */ { P_("monster", "Red Death"),               "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv3.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        14,       18,     16,     96,     96, AI_STORM,     0                                                                  ,    1,   75,      5,         10,         20,     0,       0,           0,           0,          60, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         2168 },
/* MT_LTCHDMN */ { P_("monster", "Litch Demon"),             "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv3.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        16,       20,     18,    110,    110, AI_STORM,     0                                                                  ,    2,   80,      5,         10,         24,     0,       0,           0,           0,          45, MonsterClass::Demon,    IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         2736 },
/* MT_UDEDBLRG*/ { P_("monster", "Undead Balrog"),           "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv3.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        20,       24,     22,    130,    130, AI_STORM,     0                                                                  ,    3,   85,      5,         12,         30,     0,       0,           0,           0,          65, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3575 },
/* MT_INCIN   */ { P_("monster", "Incinerator"),             "Fireman\\FireM",   "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                             128,   1460, true,        false,       false,     { 14, 19, 20,  8, 14, 23 }, { 1, 1, 1, 1, 1, 1 },        40,       43,     16,     30,     45, AI_FIREMAN,   0                                                                  ,    0,   75,      8,          8,         16,     0,       0,           0,           0,          25, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  3,                   0,         1888 },
/* MT_FLAMLRD */ { P_("monster", "Flame Lord"),              "Fireman\\FireM",   "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                             128,   1460, true,        false,       false,     { 14, 19, 20,  8, 14, 23 }, { 1, 1, 1, 1, 1, 1 },        42,       45,     18,     40,     55, AI_FIREMAN,   0                                                                  ,    1,   75,      8,         10,         20,     0,       0,           0,           0,          25, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  3,                   0,         2250 },
/* MT_DOOMFIRE*/ { P_("monster", "Doom Fire"),               "Fireman\\FireM",   "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                             128,   1460, true,        false,       false,     { 14, 19, 20,  8, 14, 23 }, { 1, 1, 1, 1, 1, 1 },        44,       47,     20,     50,     65, AI_FIREMAN,   0                                                                  ,    2,   80,      8,         12,         24,     0,       0,           0,           0,          30, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         2740 },
/* MT_HELLBURN*/ { P_("monster", "Hell Burner"),             "Fireman\\FireM",   "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                             128,   1460, true,        false,       false,     { 14, 19, 20,  8, 14, 23 }, { 1, 1, 1, 1, 1, 1 },        46,       47,     22,     60,     80, AI_FIREMAN,   0                                                                  ,    3,   85,      8,         15,         30,     0,       0,           0,           0,          30, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         3355 },
/* MT_STORM   */ { P_("monster", "Red Storm"),               "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv3.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        17,       21,     18,     55,    110, AI_STORM,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    0,   80,      5,          8,         18,    75,       8,           4,          16,          30, MonsterClass::Demon,    IMMUNE_MAGIC |               RESIST_LIGHTNING                   , IMMUNE_MAGIC |               IMMUNE_LIGHTNING                     ,  7,                   0,         2160 },
/* MT_RSTORM  */ { P_("monster", "Storm Rider"),             "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      nullptr,                             160,   1740, true,        true,        false,     {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        19,       23,     20,     60,    120, AI_STORM,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    1,   80,      5,          8,         18,    80,       8,           4,          16,          30, MonsterClass::Demon,    RESIST_MAGIC |               IMMUNE_LIGHTNING                   , IMMUNE_MAGIC |               IMMUNE_LIGHTNING                     ,  7,                   0,         2391 },
/* MT_STORML  */ { P_("monster", "Storm Lord"),              "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv2.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        21,       25,     22,     75,    135, AI_STORM,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,   85,      5,         12,         24,    75,       8,           4,          16,          35, MonsterClass::Demon,    RESIST_MAGIC |               IMMUNE_LIGHTNING                   , IMMUNE_MAGIC |               IMMUNE_LIGHTNING                     ,  7,                   0,         2775 },
/* MT_MAEL    */ { P_("monster", "Maelstrom"),               "Thin\\Thin",       "Monsters\\Thin\\Thin%c%i.WAV",      "Monsters\\Thin\\Thinv1.TRN",        160,   1740, true,        true,        true,      {  8,  8, 18,  4, 17, 14 }, { 3, 1, 1, 1, 1, 1 },        23,       27,     24,     90,    150, AI_STORM,                                      MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   90,      5,         12,         28,    75,       8,           4,          16,          40, MonsterClass::Demon,    RESIST_MAGIC |               IMMUNE_LIGHTNING  | IMMUNE_NULL_40 , IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3177 },
/* MT_BIGFALL */ { P_("monster", "Devil Kin Brute"),         "BigFall\\Fallg",   "Monsters\\newsfx\\KBrute%c%i.WAV",  nullptr,                             128,    800, true,        false,       false,     { 10,  8, 11,  8, 17,  0 }, { 1, 1, 1, 1, 2, 2 },        40,       43,     27,    120,    160, AI_SKELSD,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,  100,      6,         18,         24,     0,       0,           0,           0,          70, MonsterClass::Animal,                  RESIST_FIRE | RESIST_LIGHTNING                   , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         2400 },
/* MT_WINGED  */ { P_("monster", "Winged-Demon"),            "Gargoyle\\Gargo",  "Monsters\\Gargoyle\\Gargo%c%i.WAV", nullptr,                             160,   1650, true,        false,       false,     { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 2 },         8,       12,      9,     45,     60, AI_GARG,                                                      MFLAG_CAN_OPEN_DOOR,    0,   50,      7,         10,         16,     0,       0,           0,           0,          45, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40    ,  6,                   0,          662 },
/* MT_GARGOYLE*/ { P_("monster", "Gargoyle"),                "Gargoyle\\Gargo",  "Monsters\\Gargoyle\\Gargo%c%i.WAV", "Monsters\\Gargoyle\\GarE.TRN",      160,   1650, true,        false,       true,      { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 2 },        12,       16,     13,     60,     90, AI_GARG,                                                      MFLAG_CAN_OPEN_DOOR,    1,   65,      7,         10,         16,     0,       0,           0,           0,          45, MonsterClass::Demon,    IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  6,                   0,         1205 },
/* MT_BLOODCLW*/ { P_("monster", "Blood Claw"),              "Gargoyle\\Gargo",  "Monsters\\Gargoyle\\Gargo%c%i.WAV", "Monsters\\Gargoyle\\GargBr.TRN",    160,   1650, true,        false,       true,      { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 1 },        16,       20,     19,     75,    125, AI_GARG,                                                      MFLAG_CAN_OPEN_DOOR,    2,   80,      7,         14,         22,     0,       0,           0,           0,          50, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  6,                   0,         1873 },
/* MT_DEATHW  */ { P_("monster", "Death Wing"),              "Gargoyle\\Gargo",  "Monsters\\Gargoyle\\Gargo%c%i.WAV", "Monsters\\Gargoyle\\GargB.TRN",     160,   1650, true,        false,       true,      { 14, 14, 14, 10, 18, 14 }, { 1, 1, 1, 1, 1, 1 },        18,       22,     23,     90,    150, AI_GARG,                                                      MFLAG_CAN_OPEN_DOOR,    3,   95,      7,         16,         28,     0,       0,           0,           0,          60, MonsterClass::Demon,    IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  6,                   0,         2278 },
/* MT_MEGA    */ { P_("monster", "Slayer"),                  "Mega\\Mega",       "Monsters\\Mega\\Mega%c%i.WAV",      nullptr,                             160,   2220, true,        true,        false,     {  6,  7, 14,  1, 24,  5 }, { 3, 1, 1, 1, 2, 1 },        19,       23,     20,    120,    140, AI_MEGA,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    0,  100,      8,         12,         20,     0,       3,           0,           0,          60, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE                                      , RESIST_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         2300 },
/* MT_GUARD   */ { P_("monster", "Guardian"),                "Mega\\Mega",       "Monsters\\Mega\\Mega%c%i.WAV",      "Monsters\\Mega\\Guard.TRN",         160,   2220, true,        true,        true,      {  6,  7, 14,  1, 24,  5 }, { 3, 1, 1, 1, 2, 1 },        21,       25,     22,    140,    160, AI_MEGA,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    1,  110,      8,         14,         22,     0,       3,           0,           0,          65, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE                                      , RESIST_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         2714 },
/* MT_VTEXLRD */ { P_("monster", "Vortex Lord"),             "Mega\\Mega",       "Monsters\\Mega\\Mega%c%i.WAV",      "Monsters\\Mega\\Vtexl.TRN",         160,   2220, true,        true,        true,      {  6,  7, 14,  1, 24,  5 }, { 3, 1, 1, 1, 2, 1 },        23,       26,     24,    160,    180, AI_MEGA,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,  120,      8,         18,         24,     0,       3,           0,           0,          70, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40  , RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3252 },
/* MT_BALROG  */ { P_("monster", "Balrog"),                  "Mega\\Mega",       "Monsters\\Mega\\Mega%c%i.WAV",      "Monsters\\Mega\\Balr.TRN",          160,   2220, true,        true,        true,      {  6,  7, 14,  1, 24,  5 }, { 3, 1, 1, 1, 2, 1 },        25,       29,     26,    180,    200, AI_MEGA,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,  130,      8,         22,         30,     0,       3,           0,           0,          75, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40  , RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3643 },
/* MT_NSNAKE  */ { P_("monster", "Cave Viper"),              "Snake\\Snake",     "Monsters\\Snake\\Snake%c%i.WAV",    nullptr,                             160,   1270, false,       false,       false,     { 12, 11, 13,  5, 18,  0 }, { 2, 1, 1, 1, 1, 1 },        20,       24,     21,    100,    150, AI_SNAKE,                                      MFLAG_SEARCH                      ,    0,   90,      8,          8,         20,     0,       0,           0,           0,          60, MonsterClass::Demon,    IMMUNE_MAGIC                                                    , IMMUNE_MAGIC                                                      ,  7,                   0,         2725 },
/* MT_RSNAKE  */ { P_("monster", "Fire Drake"),              "Snake\\Snake",     "Monsters\\Snake\\Snake%c%i.WAV",    "Monsters\\Snake\\SnakR.TRN",        160,   1270, false,       false,       true,      { 12, 11, 13,  5, 18,  0 }, { 2, 1, 1, 1, 1, 1 },        22,       26,     23,    120,    170, AI_SNAKE,                                      MFLAG_SEARCH                      ,    1,  105,      8,         12,         24,     0,       0,           0,           0,          65, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE                                      , IMMUNE_MAGIC | IMMUNE_FIRE                                        ,  7,                   0,         3139 },
/* MT_BSNAKE  */ { P_("monster", "Gold Viper"),              "Snake\\Snake",     "Monsters\\Snake\\Snake%c%i.WAV",    "Monsters\\Snake\\Snakg.TRN",        160,   1270, false,       false,       true,      { 12, 11, 13,  5, 18,  0 }, { 2, 1, 1, 1, 1, 1 },        24,       27,     25,    140,    180, AI_SNAKE,                                      MFLAG_SEARCH                      ,    2,  120,      8,         15,         26,     0,       0,           0,           0,          70, MonsterClass::Demon,    IMMUNE_MAGIC |               RESIST_LIGHTNING                   , IMMUNE_MAGIC |               RESIST_LIGHTNING                     ,  7,                   0,         3540 },
/* MT_GSNAKE  */ { P_("monster", "Azure Drake"),             "Snake\\Snake",     "Monsters\\Snake\\Snake%c%i.WAV",    "Monsters\\Snake\\Snakb.TRN",        160,   1270, false,       false,       true,      { 12, 11, 13,  5, 18,  0 }, { 2, 1, 1, 1, 1, 1 },        28,       30,     27,    160,    200, AI_SNAKE,                                      MFLAG_SEARCH                      ,    3,  130,      8,         18,         30,     0,       0,           0,           0,          75, MonsterClass::Demon,                   RESIST_FIRE | RESIST_LIGHTNING                   , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING                     ,  7,                   0,         3791 },
/* MT_NBLACK  */ { P_("monster", "Black Knight"),            "Black\\Black",     "Monsters\\Black\\Black%c%i.WAV",    nullptr,                             160,   2120, false,       false,       false,     {  8,  8, 16,  4, 24,  0 }, { 2, 1, 1, 1, 1, 1 },        23,       27,     24,    150,    150, AI_SKELSD,                                     MFLAG_SEARCH                      ,    0,  110,      8,         15,         20,     0,       0,           0,           0,          75, MonsterClass::Demon,    RESIST_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40  , RESIST_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3360 },
/* MT_RTBLACK */ { P_("monster", "Doom Guard"),              "Black\\Black",     "Monsters\\Black\\Black%c%i.WAV",    "Monsters\\Black\\BlkKntRT.TRN",     160,   2120, false,       false,       true,      {  8,  8, 16,  4, 24,  0 }, { 2, 1, 1, 1, 1, 1 },        25,       29,     26,    165,    165, AI_SKELSD,                                     MFLAG_SEARCH                      ,    0,  130,      8,         18,         25,     0,       0,           0,           0,          75, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40  , RESIST_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40    ,  7,                   0,         3650 },
/* MT_BTBLACK */ { P_("monster", "Steel Lord"),              "Black\\Black",     "Monsters\\Black\\Black%c%i.WAV",    "Monsters\\Black\\BlkKntBT.TRN",     160,   2120, false,       false,       true,      {  8,  8, 16,  4, 24,  0 }, { 2, 1, 1, 1, 1, 1 },        27,       30,     28,    180,    180, AI_SKELSD,                                     MFLAG_SEARCH                      ,    1,  120,      8,         20,         30,     0,       0,           0,           0,          80, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         4252 },
/* MT_RBLACK  */ { P_("monster", "Blood Knight"),            "Black\\Black",     "Monsters\\Black\\Black%c%i.WAV",    "Monsters\\Black\\BlkKntBe.TRN",     160,   2120, false,       false,       true,      {  8,  8, 16,  4, 24,  0 }, { 2, 1, 1, 1, 1, 1 },        24,       26,     30,    200,    200, AI_SKELSD,                                     MFLAG_SEARCH                      ,    1,  130,      8,         25,         35,     0,       0,           0,           0,          85, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         5130 },
/* MT_UNRAV   */ { P_("monster", "The Shredded"),            "Unrav\\Unrav",     "Monsters\\newsfx\\Shred%c%i.WAV",   nullptr,                              96,    484, false,       false,       false,     { 10, 10, 12,  5, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        32,       35,     23,     70,     90, AI_SKELSD,    0                                                                  ,    0,   75,      7,          4,         12,     0,       0,           0,           0,          65, MonsterClass::Undead,                  RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  ,                RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          900 },
/* MT_HOLOWONE*/ { P_("monster", "Hollow One"),              "Unrav\\Unrav",     "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                              96,    484, false,       false,       false,     { 10, 10, 12,  5, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        34,       37,     27,    135,    240, AI_SKELSD,    0                                                                  ,    1,   75,      7,         12,         24,     0,       0,           0,           0,          75, MonsterClass::Undead,   IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         4374 },
/* MT_PAINMSTR*/ { P_("monster", "Pain Master"),             "Unrav\\Unrav",     "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                              96,    484, false,       false,       false,     { 10, 10, 12,  5, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        36,       39,     29,    110,    200, AI_SKELSD,    0                                                                  ,    2,   80,      7,         16,         30,     0,       0,           0,           0,          80, MonsterClass::Undead,   IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         5147 },
/* MT_REALWEAV*/ { P_("monster", "Reality Weaver"),          "Unrav\\Unrav",     "Monsters\\Acid\\Acid%c%i.WAV",      nullptr,                              96,    484, false,       false,       false,     { 10, 10, 12,  5, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        38,       39,     30,    135,    240, AI_SKELSD,    0                                                                  ,    3,   85,      7,         20,         35,     0,       0,           0,           0,          85, MonsterClass::Undead,   RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40  , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         5925 },
/* MT_SUCCUBUS*/ { P_("monster", "Succubus"),                "Succ\\Scbs",       "Monsters\\Succ\\Scbs%c%i.WAV",      nullptr,                             128,    980, false,       false,       false,     { 14,  8, 16,  7, 24,  0 }, { 1, 1, 1, 1, 1, 1 },        22,       26,     24,    120,    150, AI_SUCC,                                                      MFLAG_CAN_OPEN_DOOR,    0,  100,     10,          1,         20,     0,       0,           0,           0,          60, MonsterClass::Demon,    RESIST_MAGIC                                                    , IMMUNE_MAGIC | RESIST_FIRE                                        ,  3,                   0,         3696 },
/* MT_SNOWWICH*/ { P_("monster", "Snow Witch"),              "Succ\\Scbs",       "Monsters\\Succ\\Scbs%c%i.WAV",      "Monsters\\Succ\\Succb.TRN",         128,    980, false,       false,       true,      { 14,  8, 16,  7, 24,  0 }, { 1, 1, 1, 1, 1, 1 },        25,       28,     26,    135,    175, AI_SUCC,                                                      MFLAG_CAN_OPEN_DOOR,    1,  110,     10,          1,         24,     0,       0,           0,           0,          65, MonsterClass::Demon,                                 RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         4084 },
/* MT_HLSPWN  */ { P_("monster", "Hell Spawn"),              "Succ\\Scbs",       "Monsters\\Succ\\Scbs%c%i.WAV",      "Monsters\\Succ\\Succrw.TRN",        128,    980, false,       false,       true,      { 14,  8, 16,  7, 24,  0 }, { 1, 1, 1, 1, 1, 1 },        27,       30,     28,    150,    200, AI_SUCC,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    2,  115,     10,          1,         30,     0,       0,           0,           0,          75, MonsterClass::Demon,    RESIST_MAGIC |               IMMUNE_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         4480 },
/* MT_SOLBRNR */ { P_("monster", "Soul Burner"),             "Succ\\Scbs",       "Monsters\\Succ\\Scbs%c%i.WAV",      "Monsters\\Succ\\Succbw.TRN",        128,    980, false,       false,       true,      { 14,  8, 16,  7, 24,  0 }, { 1, 1, 1, 1, 1, 1 },        28,       30,     30,    140,    225, AI_SUCC,                                       MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,  120,     10,          1,         35,     0,       0,           0,           0,          85, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  3,                   0,         4644 },
/* MT_COUNSLR */ { P_("monster", "Counselor"),               "Mage\\Mage",       "Monsters\\Mage\\Mage%c%i.WAV",      nullptr,                             128,   2000, true,        false,       false,     { 12,  1, 20,  8, 28, 20 }, { 1, 1, 1, 1, 1, 1 },        24,       26,     25,     70,     70, AI_COUNSLR,                                                   MFLAG_CAN_OPEN_DOOR,    0,   90,      8,          8,         20,     0,       0,           0,           0,           0, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                   , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                     ,  7,                   0,         4070 },
/* MT_MAGISTR */ { P_("monster", "Magistrate"),              "Mage\\Mage",       "Monsters\\Mage\\Mage%c%i.WAV",      "Monsters\\Mage\\Cnselg.TRN",        128,   2000, true,        false,       true,      { 12,  1, 20,  8, 28, 20 }, { 1, 1, 1, 1, 1, 1 },        26,       28,     27,     85,     85, AI_COUNSLR,                                                   MFLAG_CAN_OPEN_DOOR,    1,  100,      8,         10,         24,     0,       0,           0,           0,           0, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         4478 },
/* MT_CABALIST*/ { P_("monster", "Cabalist"),                "Mage\\Mage",       "Monsters\\Mage\\Mage%c%i.WAV",      "Monsters\\Mage\\Cnselgd.TRN",       128,   2000, true,        false,       true,      { 12,  1, 20,  8, 28, 20 }, { 1, 1, 1, 1, 1, 1 },        28,       30,     29,    120,    120, AI_COUNSLR,                                                   MFLAG_CAN_OPEN_DOOR,    2,  110,      8,         14,         30,     0,       0,           0,           0,           0, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         4929 },
/* MT_ADVOCATE*/ { P_("monster", "Advocate"),                "Mage\\Mage",       "Monsters\\Mage\\Mage%c%i.WAV",      "Monsters\\Mage\\Cnselbk.TRN",       128,   2000, true,        false,       true,      { 12,  1, 20,  8, 28, 20 }, { 1, 1, 1, 1, 1, 1 },        30,       30,     30,    145,    145, AI_COUNSLR,                                                   MFLAG_CAN_OPEN_DOOR,    3,  120,      8,         15,         25,     0,       0,           0,           0,           0, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         4968 },
/* MT_GOLEM   */ { P_("monster", "Golem"),                   "Golem\\Golem",     "Monsters\\Golem\\Golm%c%i.WAV",     nullptr,                              96,    386, true,        false,       false,     {  0, 16, 12,  0, 12, 20 }, { 1, 1, 1, 1, 1, 1 },         0,        0,     12,      1,      1, AI_GOLUM,                                                     MFLAG_CAN_OPEN_DOOR,    0,    0,      7,          1,          1,     0,       0,           0,           0,           1, MonsterClass::Demon,    0                                                               , 0                                                                 ,  0,                   0,            0 },
/* MT_DIABLO  */ { P_("monster", "The Dark Lord"),           "Diablo\\Diablo",   "Monsters\\Diablo\\Diablo%c%i.WAV",  nullptr,                             160,   2000, true,        true,        false,     { 16,  6, 16,  6, 16, 16 }, { 1, 1, 1, 1, 1, 1 },        50,       50,     45,   3333,   3333, AI_DIABLO,                   MFLAG_KNOCKBACK | MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,  220,      4,         30,         60,     0,      11,           0,           0,          90, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,        31666 },
/* MT_DARKMAGE*/ { P_("monster", "The Arch-Litch Malignus"), "DarkMage\\Dmage",  "Monsters\\DarkMage\\Dmag%c%i.WAV",  nullptr,                             128,   1060, true,        false,       false,     {  6,  1, 21,  6, 23, 18 }, { 1, 1, 1, 1, 1, 1 },        40,       41,     30,    160,    160, AI_COUNSLR,                                                   MFLAG_CAN_OPEN_DOOR,    3,  120,      8,         20,         40,     0,       0,           0,           0,          70, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         4968 },
/* MT_HELLBOAR*/ { P_("monster", "Hellboar"),                "Fork\\Fork",       "Monsters\\newsfx\\HBoar%c%i.WAV",   nullptr,                             188,    800, false,       false,       false,     { 10, 10, 15,  6, 16,  0 }, { 2, 1, 1, 1, 1, 1 },        32,       35,     23,     80,    100, AI_SKELSD,                   MFLAG_KNOCKBACK | MFLAG_SEARCH                      ,    2,   70,      7,         16,         24,     0,       0,           0,           0,          60, MonsterClass::Demon,    0                                                               ,                RESIST_FIRE | RESIST_LIGHTNING                     ,  3,                   0,          750 },
/* MT_STINGER */ { P_("monster", "Stinger"),                 "Scorp\\Scorp",     "Monsters\\newsfx\\Stingr%c%i.WAV",  nullptr,                              64,    305, false,       false,       false,     { 10, 10, 12,  6, 15,  0 }, { 2, 1, 1, 1, 1, 1 },        32,       35,     22,     30,     40, AI_SKELSD,    0                                                                  ,    3,   85,      8,          1,         20,     0,       0,           0,           0,          50, MonsterClass::Animal,   0                                                               ,                              RESIST_LIGHTNING                     ,  1,                   0,          500 },
/* MT_PSYCHORB*/ { P_("monster", "Psychorb"),                "Eye\\Eye",         "Monsters\\newsfx\\psyco%c%i.WAV",   nullptr,                             156,    800, false,       false,       false,     { 12, 13, 13,  7, 21,  0 }, { 2, 1, 1, 1, 1, 1 },        32,       35,     22,     20,     30, AI_PSYCHORB,  0                                                                  ,    3,   80,      8,         10,         10,     0,       0,           0,           0,          40, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  6,                   0,          450 },
/* MT_ARACHNON*/ { P_("monster", "Arachnon"),                "Spider\\Spider",   "Monsters\\newsfx\\SLord%c%i.WAV",   nullptr,                             148,    800, false,       false,       false,     { 12, 10, 15,  6, 20,  0 }, { 2, 1, 1, 1, 1, 1 },        32,       35,     22,     60,     80, AI_SKELSD,                                     MFLAG_SEARCH                      ,    3,   50,      8,          5,         15,     0,       0,           0,           0,          50, MonsterClass::Animal,   0                                                               ,                              RESIST_LIGHTNING                     ,  7,                   0,          500 },
/* MT_FELLTWIN*/ { P_("monster", "Felltwin"),                "TSneak\\TSneak",   "Monsters\\newsfx\\FTwin%c%i.WAV",   nullptr,                             128,    800, false,       false,       false,     { 13, 13, 15, 11, 16,  0 }, { 2, 1, 1, 1, 1, 1 },        32,       35,     22,     50,     70, AI_SKELSD,                                     MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,   70,      8,         10,         18,     0,       0,           0,           0,          50, MonsterClass::Demon,                                                    IMMUNE_NULL_40  ,                RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,          600 },
/* MT_HORKSPWN*/ { P_("monster", "Hork Spawn"),              "Spawn\\Spawn",     "Monsters\\newsfx\\HSpawn%c%i.WAV",  nullptr,                             164,    520, false,       true,        false,     { 15, 12, 14, 11, 14,  0 }, { 1, 1, 1, 1, 1, 1 },        34,       37,     22,     30,     30, AI_SKELSD,    0                                                                  ,    3,   60,      8,         10,         25,     0,       0,           0,           0,          25, MonsterClass::Demon,    RESIST_MAGIC                                                    , RESIST_MAGIC                                                      ,  3,                   0,          250 },
/* MT_VENMTAIL*/ { P_("monster", "Venomtail"),               "WScorp\\WScorp",   "Monsters\\newsfx\\Stingr%c%i.WAV",  nullptr,                              86,    305, false,       false,       false,     { 10, 10, 12,  6, 15,  0 }, { 2, 1, 1, 1, 1, 1 },        36,       39,     24,     40,     50, AI_SKELSD,    0                                                                  ,    3,   85,      8,          1,         30,     0,       0,           0,           0,          60, MonsterClass::Animal,                                RESIST_LIGHTNING                   ,                              IMMUNE_LIGHTNING                     ,  1,                   0,         1000 },
/* MT_NECRMORB*/ { P_("monster", "Necromorb"),               "Eye2\\Eye2",       "Monsters\\newsfx\\Psyco%c%i.WAV",   nullptr,                             140,    800, false,       false,       false,     { 12, 13, 13,  7, 21,  0 }, { 2, 1, 1, 1, 1, 1 },        36,       39,     24,     30,     40, AI_NECROMORB, 0                                                                  ,    3,   80,      8,         20,         20,     0,       0,           0,           0,          50, MonsterClass::Animal,                  RESIST_FIRE                                      ,                IMMUNE_FIRE | RESIST_LIGHTNING                     ,  6,                   0,         1100 },
/* MT_SPIDLORD*/ { P_("monster", "Spider Lord"),             "bSpidr\\bSpidr",   "Monsters\\newsfx\\SLord%c%i.WAV",   nullptr,                             148,    800, true,        true,        false,     { 12, 10, 15,  6, 20, 10 }, { 2, 1, 1, 1, 1, 1 },        36,       39,     24,     80,    100, AI_ACID,                                       MFLAG_SEARCH                      ,    3,   60,      8,          8,         20,    75,       8,          10,          10,          60, MonsterClass::Animal,                                RESIST_LIGHTNING                   ,                RESIST_FIRE | IMMUNE_LIGHTNING                     ,  7,                   0,         1250 },
/* MT_LASHWORM*/ { P_("monster", "Lashworm"),                "Clasp\\Clasp",     "Monsters\\newsfx\\Lworm%c%i.WAV",   nullptr,                             176,    800, false,       false,       false,     { 10, 12, 15,  6, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        36,       39,     20,     30,     30, AI_SKELSD,    0                                                                  ,    3,   90,      8,         12,         20,     0,       0,           0,           0,          50, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE                                        ,  3,                   0,          600 },
/* MT_TORCHANT*/ { P_("monster", "Torchant"),                "AntWorm\\Worm",    "Monsters\\newsfx\\TchAnt%c%i.WAV",  nullptr,                             192,    800, false,       false,       false,     { 14, 12, 12,  6, 20,  0 }, { 2, 1, 1, 1, 1, 1 },        36,       39,     22,     60,     80, AI_TORCHANT,  0                                                                  ,    3,   75,      8,         20,         30,     0,       0,           0,           0,          70, MonsterClass::Animal,                  IMMUNE_FIRE                                      , RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  7,                   0,         1250 },
/* MT_HORKDMN */ { P_("monster", "Hork Demon"),              "HorkD\\HorkD",     "Monsters\\newsfx\\HDemon%c%i.WAV",  nullptr,                             138,    800, true,        true,        false,     { 15,  8, 16,  6, 16,  9 }, { 2, 1, 1, 1, 1, 2 },        36,       37,     27,    120,    160, AI_SKELSD,    0                                                                  ,    3,   60,      8,         20,         35,    80,       8,           0,           0,          80, MonsterClass::Demon,                                 RESIST_LIGHTNING                   , RESIST_MAGIC |               IMMUNE_LIGHTNING                     ,  7,                   0,         2000 },
/* MT_DEFILER */ { P_("monster", "Hell Bug"),                "Hellbug\\Hellbg",  "Monsters\\newsfx\\Defile%c%i.WAV",  nullptr,                             198,    800, true,        true,        false,     {  8,  8, 14,  6, 14, 12 }, { 1, 1, 1, 1, 1, 1 },        38,       39,     30,    240,    240, AI_SKELSD,                                     MFLAG_SEARCH                      ,    3,  110,      8,         20,         30,    90,       8,          50,          60,          80, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING                   , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  7,                   0,         5000 },
/* MT_GRAVEDIG*/ { P_("monster", "Gravedigger"),             "Gravdg\\Gravdg",   "Monsters\\newsfx\\GDiggr%c%i.WAV",  nullptr,                             124,    800, true,        true,        false,     { 24, 24, 12,  6, 16, 16 }, { 2, 1, 1, 1, 1, 1 },        40,       41,     26,    120,    240, AI_SCAV,                                                      MFLAG_CAN_OPEN_DOOR,    3,   80,      6,          2,         12,     0,       0,           0,           0,          20, MonsterClass::Undead,                                IMMUNE_LIGHTNING  | IMMUNE_NULL_40 , RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         2000 },
/* MT_TOMBRAT */ { P_("monster", "Tomb Rat"),                "Rat\\Rat",         "Monsters\\newsfx\\TmbRat%c%i.WAV",  nullptr,                             104,    550, false,       false,       false,     { 11,  8, 12,  6, 20,  0 }, { 2, 1, 1, 1, 1, 1 },        40,       43,     24,     80,    120, AI_SKELSD,    0                                                                  ,    3,  120,      8,         12,         25,     0,       0,           0,           0,          30, MonsterClass::Animal,   0                                                               ,                RESIST_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         1800 },
/* MT_FIREBAT */ { P_("monster", "Firebat"),                 "Hellbat\\Helbat",  "Monsters\\newsfx\\HelBat%c%i.WAV",  nullptr,                              96,    550, false,       false,       false,     { 18, 16, 14,  6, 18, 11 }, { 2, 1, 1, 1, 1, 1 },        40,       43,     24,     60,     80, AI_FIREBAT,   0                                                                  ,    3,  100,      8,         15,         20,     0,       0,           0,           0,          70, MonsterClass::Animal,                  IMMUNE_FIRE                                      , RESIST_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  7,                   0,         2400 },
/* MT_SKLWING */ { P_("monster", "Skullwing"),               "Demskel\\Demskl",  "Monsters\\newsfx\\SWing%c%i.WAV",   "Monsters\\Thin\\Thinv3.TRN",        128,   1740, true,        false,       false,     { 10,  8, 20,  6, 24, 16 }, { 3, 1, 1, 1, 1, 1 },        40,       43,     27,     70,     70, AI_SKELSD,    0                                                                  ,    0,   75,      7,         15,         20,    75,       9,          15,          20,          80, MonsterClass::Undead,                  RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40  ,                RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         3000 },
/* MT_LICH    */ { P_("monster", "Lich"),                    "Lich\\Lich",       "Monsters\\newsfx\\Lich%c%i.WAV",    nullptr,                              96,    800, false,       true,        false,     { 12, 10, 10,  7, 21,  0 }, { 2, 1, 1, 1, 2, 1 },        40,       43,     25,     80,    100, AI_LICH,      0                                                                  ,    3,  100,      8,         15,         20,     0,       0,           0,           0,          60, MonsterClass::Undead,                                RESIST_LIGHTNING | IMMUNE_NULL_40  , RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         3000 },
/* MT_CRYPTDMN*/ { P_("monster", "Crypt Demon"),             "Bubba\\Bubba",     "Monsters\\newsfx\\Crypt%c%i.WAV",   nullptr,                             154,    800, false,       true,        false,     {  8, 18, 12,  8, 21,  0 }, { 3, 1, 1, 1, 1, 1 },        42,       45,     28,    200,    240, AI_SKELSD,    0                                                                  ,    3,  100,      8,         20,         40,     0,       0,           0,           0,          85, MonsterClass::Demon,    IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                   , IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         3200 },
/* MT_HELLBAT */ { P_("monster", "Hellbat"),                 "Hellbat2\\bhelbt", "Monsters\\newsfx\\HelBat%c%i.WAV",  nullptr,                              96,    550, true,        false,       false,     { 18, 16, 14,  6, 18, 11 }, { 2, 1, 1, 1, 1, 1 },        44,       47,     29,    100,    140, AI_TORCHANT,  0                                                                  ,    3,  110,      8,         30,         30,     0,       0,           0,           0,          80, MonsterClass::Demon,    RESIST_MAGIC | IMMUNE_FIRE  | RESIST_LIGHTNING                  , RESIST_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  7,                   0,         3600 },
/* MT_BONEDEMN*/ { P_("monster", "Bone Demon"),              "Demskel\\Demskl",  "Monsters\\newsfx\\SWing%c%i.WAV",   "Monsters\\Thin\\Thinv3.TRN",        128,   1740, true,        true,        false,     { 10,  8, 20,  6, 24, 16 }, { 3, 1, 1, 1, 1, 1 },        44,       47,     30,    240,    280, AI_BONEDEMON, 0                                                                  ,    0,  100,      8,         40,         50,   160,      12,          50,          50,          50, MonsterClass::Undead,                  IMMUNE_FIRE  | IMMUNE_LIGHTNING | IMMUNE_NULL_40 ,                IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,         5000 },
/* MT_ARCHLICH*/ { P_("monster", "Arch Lich"),               "Lich2\\Lich2",     "Monsters\\newsfx\\Lich%c%i.WAV",    nullptr,                             136,    800, false,       true,        false,     { 12, 10, 10,  7, 21,  0 }, { 2, 1, 1, 1, 2, 1 },        44,       47,     30,    180,    200, AI_ARCHLICH,  0                                                                  ,    3,  120,      8,         30,         30,     0,       0,           0,           0,          75, MonsterClass::Undead,   RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING  | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  3,                   0,         4000 },
/* MT_BICLOPS */ { P_("monster", "Biclops"),                 "Byclps\\Byclps",   "Monsters\\newsfx\\Biclop%c%i.WAV",  nullptr,                             180,    800, false,       false,       false,     { 10, 11, 16,  6, 16,  0 }, { 2, 1, 1, 1, 2, 1 },        44,       47,     30,    200,    240, AI_SKELSD,                   MFLAG_KNOCKBACK |                MFLAG_CAN_OPEN_DOOR,    3,   90,      8,         40,         50,     0,       0,           0,           0,          80, MonsterClass::Demon,                                 RESIST_LIGHTNING                   ,                RESIST_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         4000 },
/* MT_FLESTHNG*/ { P_("monster", "Flesh Thing"),             "Flesh\\Flesh",     "Monsters\\newsfx\\FleshT%c%i.WAV",  nullptr,                             164,    800, false,       true,        false,     { 15, 24, 15,  6, 16,  0 }, { 1, 1, 1, 1, 1, 1 },        44,       47,     28,    300,    400, AI_SKELSD,    0                                                                  ,    3,  150,      8,         12,         18,     0,       0,           0,           0,          70, MonsterClass::Demon,    RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                   , RESIST_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                     ,  3,                   0,         4000 },
/* MT_REAPER  */ { P_("monster", "Reaper"),                  "Reaper\\Reap",     "Monsters\\newsfx\\Reaper%c%i.WAV",  nullptr,                             180,    800, false,       false,       false,     { 12, 10, 14,  6, 16,  0 }, { 2, 1, 1, 1, 1, 1 },        44,       47,     30,    260,    300, AI_SKELSD,    0                                                                  ,    3,  120,      8,         30,         35,     0,       0,           0,           0,          90, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE  | RESIST_LIGHTNING                  , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                     ,  3,                   0,         6000 },
// TRANSLATORS: Monster Block end
/* MT_NAKRUL  */ { P_("monster", "Na-Krul"),                 "Nkr\\Nkr",         "Monsters\\newsfx\\Nakrul%c%i.WAV",  nullptr,                             226,   1200, true,        true,        false,     {  2,  6, 16,  3, 16, 16 }, { 0, 0, 0, 0, 0, 0 },        60,       60,     40,   1332,   1332, AI_SKELSD,                   MFLAG_KNOCKBACK | MFLAG_SEARCH | MFLAG_CAN_OPEN_DOOR,    3,  150,      7,         40,         50,   150,      10,          40,          50,         125, MonsterClass::Demon,    IMMUNE_MAGIC | IMMUNE_FIRE  | RESIST_LIGHTNING | IMMUNE_NULL_40 , IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40    ,  7,                   0,        13333 },
	// clang-format on
};

/**
 * Map between .DUN file value and monster type enum
 */
const _monster_id MonstConvTbl[] = {
	MT_NZOMBIE,
	MT_BZOMBIE,
	MT_GZOMBIE,
	MT_YZOMBIE,
	MT_RFALLSP,
	MT_DFALLSP,
	MT_YFALLSP,
	MT_BFALLSP,
	MT_WSKELAX,
	MT_TSKELAX,
	MT_RSKELAX,
	MT_XSKELAX,
	MT_RFALLSD,
	MT_DFALLSD,
	MT_YFALLSD,
	MT_BFALLSD,
	MT_NSCAV,
	MT_BSCAV,
	MT_WSCAV,
	MT_YSCAV,
	MT_WSKELBW,
	MT_TSKELBW,
	MT_RSKELBW,
	MT_XSKELBW,
	MT_WSKELSD,
	MT_TSKELSD,
	MT_RSKELSD,
	MT_XSKELSD,
	MT_SNEAK,
	MT_STALKER,
	MT_UNSEEN,
	MT_ILLWEAV,
	MT_NGOATMC,
	MT_BGOATMC,
	MT_RGOATMC,
	MT_GGOATMC,
	MT_FIEND,
	MT_GLOOM,
	MT_BLINK,
	MT_FAMILIAR,
	MT_NGOATBW,
	MT_BGOATBW,
	MT_RGOATBW,
	MT_GGOATBW,
	MT_NACID,
	MT_RACID,
	MT_BACID,
	MT_XACID,
	MT_SKING,
	MT_FAT,
	MT_MUDMAN,
	MT_TOAD,
	MT_FLAYED,
	MT_WYRM,
	MT_CAVSLUG,
	MT_DEVOUR,
	MT_DVLWYRM,
	MT_NMAGMA,
	MT_YMAGMA,
	MT_BMAGMA,
	MT_WMAGMA,
	MT_HORNED,
	MT_MUDRUN,
	MT_FROSTC,
	MT_OBLORD,
	MT_BONEDMN,
	MT_REDDTH,
	MT_LTCHDMN,
	MT_UDEDBLRG,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID,
	MT_INCIN,
	MT_FLAMLRD,
	MT_DOOMFIRE,
	MT_HELLBURN,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID,
	MT_RSTORM,
	MT_STORM,
	MT_STORML,
	MT_MAEL,
	MT_WINGED,
	MT_GARGOYLE,
	MT_BLOODCLW,
	MT_DEATHW,
	MT_MEGA,
	MT_GUARD,
	MT_VTEXLRD,
	MT_BALROG,
	MT_NSNAKE,
	MT_RSNAKE,
	MT_GSNAKE,
	MT_BSNAKE,
	MT_NBLACK,
	MT_RTBLACK,
	MT_BTBLACK,
	MT_RBLACK,
	MT_UNRAV,
	MT_HOLOWONE,
	MT_PAINMSTR,
	MT_REALWEAV,
	MT_SUCCUBUS,
	MT_SNOWWICH,
	MT_HLSPWN,
	MT_SOLBRNR,
	MT_COUNSLR,
	MT_MAGISTR,
	MT_CABALIST,
	MT_ADVOCATE,
	MT_INVALID,
	MT_DIABLO,
	MT_INVALID,
	MT_GOLEM,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID, // Monster from blood1.dun and blood2.dun
	MT_INVALID,
	MT_INVALID,
	MT_INVALID,
	MT_INVALID, // Snotspill from banner2.dun
	MT_INVALID,
	MT_INVALID,
	MT_BIGFALL,
	MT_DARKMAGE,
	MT_HELLBOAR,
	MT_STINGER,
	MT_PSYCHORB,
	MT_ARACHNON,
	MT_FELLTWIN,
	MT_HORKSPWN,
	MT_STINGER,
	MT_PSYCHORB,
	MT_ARACHNON,
	MT_LASHWORM,
	MT_TORCHANT,
	MT_HORKDMN,
	MT_DEFILER,
	MT_GRAVEDIG,
	MT_TOMBRAT,
	MT_FIREBAT,
	MT_SKLWING,
	MT_LICH,
	MT_CRYPTDMN,
	MT_FIREBAT,
	MT_SKLWING,
	MT_LICH,
	MT_BICLOPS,
	MT_FLESTHNG,
	MT_REAPER,
	MT_NAKRUL,
	MT_CLEAVER,
	MT_INVILORD,
	MT_LRDSAYTR,
};

/**
 * Define what version a monster type is available in
 */
const char MonstAvailTbl[] = {
	MAT_ALWAYS, // Zombie
	MAT_ALWAYS, // Ghoul
	MAT_ALWAYS, // Rotting Carcass
	MAT_ALWAYS, // Black Death
	MAT_ALWAYS, // Fallen One
	MAT_ALWAYS, // Carver
	MAT_ALWAYS, // Devil Kin
	MAT_ALWAYS, // Dark One
	MAT_ALWAYS, // Skeleton
	MAT_ALWAYS, // Corpse Axe
	MAT_ALWAYS, // Burning Dead
	MAT_ALWAYS, // Horror
	MAT_ALWAYS, // Fallen One
	MAT_ALWAYS, // Carver
	MAT_ALWAYS, // Devil Kin
	MAT_ALWAYS, // Dark One
	MAT_ALWAYS, // Scavenger
	MAT_ALWAYS, // Plague Eater
	MAT_ALWAYS, // Shadow Beast
	MAT_ALWAYS, // Bone Gasher
	MAT_ALWAYS, // Skeleton
	MAT_ALWAYS, // Corpse Bow
	MAT_ALWAYS, // Burning Dead
	MAT_ALWAYS, // Horror
	MAT_ALWAYS, // Skeleton Captain
	MAT_ALWAYS, // Corpse Captain
	MAT_ALWAYS, // Burning Dead Captain
	MAT_ALWAYS, // Horror Captain
	MAT_NEVER,  // Invisible Lord
	MAT_RETAIL, // Hidden
	MAT_RETAIL, // Stalker
	MAT_RETAIL, // Unseen
	MAT_RETAIL, // Illusion Weaver
	MAT_RETAIL, // Satyr Lord
	MAT_RETAIL, // Flesh Clan
	MAT_RETAIL, // Stone Clan
	MAT_RETAIL, // Fire Clan
	MAT_RETAIL, // Night Clan
	MAT_ALWAYS, // Fiend
	MAT_ALWAYS, // Blink
	MAT_ALWAYS, // Gloom
	MAT_ALWAYS, // Familiar
	MAT_RETAIL, // Flesh Clan
	MAT_RETAIL, // Stone Clan
	MAT_RETAIL, // Fire Clan
	MAT_RETAIL, // Night Clan
	MAT_RETAIL, // Acid Beast
	MAT_RETAIL, // Poison Spitter
	MAT_RETAIL, // Pit Beast
	MAT_RETAIL, // Lava Maw
	MAT_NEVER,  // Skeleton King
	MAT_NEVER,  // The Butcher
	MAT_RETAIL, // Overlord
	MAT_RETAIL, // Mud Man
	MAT_RETAIL, // Toad Demon
	MAT_RETAIL, // Flayed One
	MAT_NEVER,  // Wyrm
	MAT_NEVER,  // Cave Slug
	MAT_NEVER,  // Devil Wyrm
	MAT_NEVER,  // Devourer
	MAT_RETAIL, // Magma Demon
	MAT_RETAIL, // Blood Stone
	MAT_RETAIL, // Hell Stone
	MAT_RETAIL, // Lava Lord
	MAT_RETAIL, // Horned Demon
	MAT_RETAIL, // Mud Runner
	MAT_RETAIL, // Frost Charger
	MAT_RETAIL, // Obsidian Lord
	MAT_NEVER,  // Bone Demon (oldboned in Hellfire)
	MAT_NEVER,  // Red Death
	MAT_NEVER,  // Litch Demon
	MAT_NEVER,  // Undead Balrog
	MAT_NEVER,  // Incinerator
	MAT_NEVER,  // Flame Lord
	MAT_NEVER,  // Doom Fire
	MAT_NEVER,  // Hell Burner
	MAT_RETAIL, // Red Storm
	MAT_RETAIL, // Storm Rider
	MAT_RETAIL, // Storm Lord
	MAT_RETAIL, // Maelstorm
	MAT_RETAIL, // Devil Kin Brute
	MAT_RETAIL, // Winged-Demon
	MAT_RETAIL, // Gargoyle
	MAT_RETAIL, // Blood Claw
	MAT_RETAIL, // Death Wing
	MAT_RETAIL, // Slayer
	MAT_RETAIL, // Guardian
	MAT_RETAIL, // Vortex Lord
	MAT_RETAIL, // Balrog
	MAT_RETAIL, // Cave Viper
	MAT_RETAIL, // Fire Drake
	MAT_RETAIL, // Gold Viper
	MAT_RETAIL, // Azure Drake
	MAT_RETAIL, // Black Knight
	MAT_RETAIL, // Doom Guard
	MAT_RETAIL, // Steel Lord
	MAT_RETAIL, // Blood Knight
	MAT_RETAIL, // The Shredded
	MAT_NEVER,  // Hollow One
	MAT_NEVER,  // Pain Master
	MAT_NEVER,  // Reality Weaver
	MAT_RETAIL, // Succubus
	MAT_RETAIL, // Snow Witch
	MAT_RETAIL, // Hell Spawn
	MAT_RETAIL, // Soul Burner
	MAT_RETAIL, // Counselor
	MAT_RETAIL, // Magistrate
	MAT_RETAIL, // Cabalist
	MAT_RETAIL, // Advocate
	MAT_NEVER,  // Golem
	MAT_NEVER,  // The Dark Lord
	MAT_NEVER,  // The Arch-Litch Malignus
	MAT_RETAIL, // Hellboar
	MAT_RETAIL, // Stinger
	MAT_RETAIL, // Psychorb
	MAT_RETAIL, // Arachnon
	MAT_RETAIL, // Felltwin
	MAT_RETAIL, // Hork Spawn
	MAT_RETAIL, // Venomtail
	MAT_RETAIL, // Necromorb
	MAT_RETAIL, // Spider Lord
	MAT_RETAIL, // Lashworm
	MAT_RETAIL, // Torchant
	MAT_NEVER,  // Hork Demon
	MAT_NEVER,  // Hell Bug
	MAT_RETAIL, // Gravedigger
	MAT_RETAIL, // Tomb Rat
	MAT_RETAIL, // Firebat
	MAT_RETAIL, // Skullwing
	MAT_RETAIL, // Lich
	MAT_RETAIL, // Crypt Demon
	MAT_RETAIL, // Hellbat
	MAT_RETAIL, // Bone Demon
	MAT_RETAIL, // Arch Lich
	MAT_RETAIL, // Biclops
	MAT_RETAIL, // Flesh Thing
	MAT_RETAIL, // Reaper
	MAT_NEVER,  // Na-Krul
};
/** Contains the data related to each unique monster ID. */
const UniqueMonsterData UniqueMonstersData[] = {
	// clang-format off
	// mtype,            mName,                                             mTrnName,          mlevel,    mmaxhp,    mAi,               mint,  mMinDamage,  mMaxDamage,                         mMagicRes,                               monsterPack,                      customToHit, customArmorClass, mtalkmsg
	// TRANSLATORS: Unique Monster Block start
	{  MT_NGOATMC,       P_("monster", "Gharbad the Weak"),                 "BSDB",                 4,       120, AI_GARBUD,               3,           8,          16,                               IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_GARBUD1   },
	{  MT_SKING,         P_("monster", "Skeleton King"),                    "GENRL",                0,       240, AI_SKELKING,             3,           6,          16,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Independent,             0,                0, TEXT_NONE      },
	{  MT_COUNSLR,       P_("monster", "Zhar the Mad"),                     "GENERAL",              8,       360, AI_ZHAR,                 3,          16,          40,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_ZHAR1     },
	{  MT_BFALLSP,       P_("monster", "Snotspill"),                        "BNG",                  4,       220, AI_SNOTSPIL,             3,          10,          18,                               RESIST_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_BANNER10  },
	{  MT_ADVOCATE,      P_("monster", "Arch-Bishop Lazarus"),              "GENERAL",              0,       600, AI_LAZARUS,              3,          30,          50,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_VILE13    },
	{  MT_HLSPWN,        P_("monster", "Red Vex"),                          "REDV",                 0,       400, AI_LAZHELP,              3,          30,          50,  IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_VILE13    },
	{  MT_HLSPWN,        P_("monster", "Black Jade"),                       "BLKJD",                0,       400, AI_LAZHELP,              3,          30,          50,  IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_VILE13    },
	{  MT_RBLACK,        P_("monster", "Lachdanan"),                        "BHKA",                14,       500, AI_LACHDAN,              3,           0,           0,  0                                                             , UniqueMonsterPack::None,                    0,                0, TEXT_VEIL9     },
	{  MT_BTBLACK,       P_("monster", "Warlord of Blood"),                 "GENERAL",             13,       850, AI_WARLORD,              3,          35,          50,  IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_WARLRD9   },
	{  MT_CLEAVER,       P_("monster", "The Butcher"),                      "GENRL",                0,       220, AI_CLEAVER,              3,           6,          12,                 RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_HORKDMN,       P_("monster", "Hork Demon"),                       "GENRL",               19,       300, AI_HORKDMN,              3,          20,          35,                               RESIST_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_DEFILER,       P_("monster", "The Defiler"),                      "GENRL",               20,       480, AI_SKELSD,               3,          30,          40,  RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_NAKRUL,        P_("monster", "Na-Krul"),                          "GENRL",                0,      1332, AI_SKELSD,               3,          40,          50,  IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_TSKELAX,       P_("monster", "Bonehead Keenaxe"),                 "BHKA",                 2,        91, AI_SKELSD,               2,           4,          10,  IMMUNE_MAGIC |                                  IMMUNE_NULL_40, UniqueMonsterPack::Leashed,               100,                0, TEXT_NONE      },
	{  MT_RFALLSD,       P_("monster", "Bladeskin the Slasher"),            "BSTS",                 2,        51, AI_FALLEN,               0,           6,          18,                 RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,               45, TEXT_NONE      },
	{  MT_NZOMBIE,       P_("monster", "Soulpus"),                          "GENERAL",              2,       133, AI_ZOMBIE,               0,           4,           8,                 RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_RFALLSP,       P_("monster", "Pukerat the Unclean"),              "PTU",                  2,        77, AI_FALLEN,               3,           1,           5,                 RESIST_FIRE                                    , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_WSKELAX,       P_("monster", "Boneripper"),                       "BR",                   2,        54, AI_BAT,                  0,           6,          15,  IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NZOMBIE,       P_("monster", "Rotfeast the Hungry"),              "ETH",                  2,        85, AI_SKELSD,               3,           4,          12,  IMMUNE_MAGIC |                                  IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_DFALLSD,       P_("monster", "Gutshank the Quick"),               "GTQ",                  3,        66, AI_BAT,                  2,           6,          16,                 RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_TSKELSD,       P_("monster", "Brokenhead Bangshield"),            "BHBS",                 3,       108, AI_SKELSD,               3,          12,          20,  IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_YFALLSP,       P_("monster", "Bongo"),                            "BNG",                  3,       178, AI_FALLEN,               3,           9,          21,  0                                                             , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BZOMBIE,       P_("monster", "Rotcarnage"),                       "RCRN",                 3,       102, AI_ZOMBIE,               3,           9,          24,  IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,               45, TEXT_NONE      },
	{  MT_NSCAV,         P_("monster", "Shadowbite"),                       "SHBT",                 2,        60, AI_SKELSD,               3,           3,          20,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_WSKELBW,       P_("monster", "Deadeye"),                          "DE",                   2,        49, AI_GOATBOW,              0,           6,           9,  IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_RSKELAX,       P_("monster", "Madeye the Dead"),                  "MTD",                  4,        75, AI_BAT,                  0,           9,          21,  IMMUNE_MAGIC | IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,               30, TEXT_NONE      },
	{  MT_BSCAV,         P_("monster", "El Chupacabras"),                   "GENERAL",              3,       120, AI_GOATMC,               0,          10,          18,                 RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_TSKELBW,       P_("monster", "Skullfire"),                        "SKFR",                 3,       125, AI_GOATBOW,              1,           6,          10,                 IMMUNE_FIRE                                    , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_SNEAK,         P_("monster", "Warpskull"),                        "TSPO",                 3,       117, AI_SNEAK,                2,           6,          18,                 RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_GZOMBIE,       P_("monster", "Goretongue"),                       "PMR",                  3,       156, AI_SKELSD,               1,          15,          30,  IMMUNE_MAGIC |                                  IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_WSCAV,         P_("monster", "Pulsecrawler"),                     "BHKA",                 4,       150, AI_SCAV,                 0,          16,          20,                 IMMUNE_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,               45, TEXT_NONE      },
	{  MT_BLINK,         P_("monster", "Moonbender"),                       "GENERAL",              4,       135, AI_BAT,                  0,           9,          27,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BLINK,         P_("monster", "Wrathraven"),                       "GENERAL",              5,       135, AI_BAT,                  2,           9,          22,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_YSCAV,         P_("monster", "Spineeater"),                       "GENERAL",              4,       180, AI_SCAV,                 1,          18,          25,                               IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RSKELBW,       P_("monster", "Blackash the Burning"),             "BASHTB",               4,       120, AI_GOATBOW,              0,           6,          16,  IMMUNE_MAGIC | IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BFALLSD,       P_("monster", "Shadowcrow"),                       "GENERAL",              5,       270, AI_SNEAK,                2,          12,          25,  0                                                             , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_LRDSAYTR,      P_("monster", "Blightstone the Weak"),             "BHKA",                 4,       360, AI_SKELSD,               0,           4,          12,  IMMUNE_MAGIC |               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                70,                0, TEXT_NONE      },
	{  MT_FAT,           P_("monster", "Bilefroth the Pit Master"),         "BFTP",                 6,       210, AI_BAT,                  1,          16,          23,  IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NGOATBW,       P_("monster", "Bloodskin Darkbow"),                "BSDB",                 5,       207, AI_GOATBOW,              0,           3,          16,                 RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,               55, TEXT_NONE      },
	{  MT_GLOOM,         P_("monster", "Foulwing"),                         "DB",                   5,       246, AI_RHINO,                3,          12,          28,                 RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_XSKELSD,       P_("monster", "Shadowdrinker"),                    "SHDR",                 5,       300, AI_SNEAK,                1,          18,          26,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,               45, TEXT_NONE      },
	{  MT_UNSEEN,        P_("monster", "Hazeshifter"),                      "BHKA",                 5,       285, AI_SNEAK,                3,          18,          30,                               IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NACID,         P_("monster", "Deathspit"),                        "BFDS",                 6,       303, AI_ACIDUNIQ,             0,          12,          32,                 RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RGOATMC,       P_("monster", "Bloodgutter"),                      "BGBL",                 6,       315, AI_BAT,                  1,          24,          34,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BGOATMC,       P_("monster", "Deathshade Fleshmaul"),             "DSFM",                 6,       276, AI_RHINO,                0,          12,          24,  IMMUNE_MAGIC | RESIST_FIRE                                    , UniqueMonsterPack::None,                    0,               65, TEXT_NONE      },
	{  MT_WYRM,          P_("monster", "Warmaggot the Mad"),                "GENERAL",              6,       246, AI_BAT,                  3,          15,          30,                               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_STORM,         P_("monster", "Glasskull the Jagged"),             "BHKA",                 7,       354, AI_STORM,                0,          18,          30,  IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RGOATBW,       P_("monster", "Blightfire"),                       "BLF",                  7,       321, AI_SUCC,                 2,          13,          21,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_GARGOYLE,      P_("monster", "Nightwing the Cold"),               "GENERAL",              7,       342, AI_BAT,                  1,          18,          26,  IMMUNE_MAGIC |               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_GGOATBW,       P_("monster", "Gorestone"),                        "GENERAL",              7,       303, AI_GOATBOW,              1,          15,          28,                               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                70,                0, TEXT_NONE      },
	{  MT_BMAGMA,        P_("monster", "Bronzefist Firestone"),             "GENERAL",              8,       360, AI_MAGMA,                0,          30,          36,  IMMUNE_MAGIC | RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_INCIN,         P_("monster", "Wrathfire the Doomed"),             "WFTD",                 8,       270, AI_SKELSD,               2,          20,          30,  IMMUNE_MAGIC | RESIST_FIRE |  RESIST_LIGHTNING                , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NMAGMA,        P_("monster", "Firewound the Grim"),               "BHKA",                 8,       303, AI_MAGMA,                0,          18,          22,  IMMUNE_MAGIC | RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_MUDMAN,        P_("monster", "Baron Sludge"),                     "BSM",                  8,       315, AI_SNEAK,                3,          25,          34,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,               75, TEXT_NONE      },
	{  MT_GGOATMC,       P_("monster", "Blighthorn Steelmace"),             "BHSM",                 7,       250, AI_RHINO,                0,          20,          28,                               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,               45, TEXT_NONE      },
	{  MT_RACID,         P_("monster", "Chaoshowler"),                      "GENERAL",              8,       240, AI_ACIDUNIQ,             0,          12,          20,  0                                                             , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_REDDTH,        P_("monster", "Doomgrin the Rotting"),             "GENERAL",              8,       405, AI_STORM,                3,          25,          50,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_FLAMLRD,       P_("monster", "Madburner"),                        "GENERAL",              9,       270, AI_STORM,                0,          20,          40,  IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_LTCHDMN,       P_("monster", "Bonesaw the Litch"),                "GENERAL",              9,       495, AI_STORM,                2,          30,          55,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_MUDRUN,        P_("monster", "Breakspine"),                       "GENERAL",              9,       351, AI_RHINO,                0,          25,          34,                 RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_REDDTH,        P_("monster", "Devilskull Sharpbone"),             "GENERAL",              9,       444, AI_STORM,                1,          25,          40,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_STORM,         P_("monster", "Brokenstorm"),                      "GENERAL",              9,       411, AI_STORM,                2,          25,          36,                               IMMUNE_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RSTORM,        P_("monster", "Stormbane"),                        "GENERAL",              9,       555, AI_STORM,                3,          30,          30,                               IMMUNE_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_TOAD,          P_("monster", "Oozedrool"),                        "GENERAL",              9,       483, AI_FAT,                  3,          25,          30,                               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BLOODCLW,      P_("monster", "Goldblight of the Flame"),          "GENERAL",             10,       405, AI_GARG,                 0,          15,          35,  IMMUNE_MAGIC | IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,               80, TEXT_NONE      },
	{  MT_OBLORD,        P_("monster", "Blackstorm"),                       "GENERAL",             10,       525, AI_RHINO,                3,          20,          40,  IMMUNE_MAGIC |               IMMUNE_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,               90, TEXT_NONE      },
	{  MT_RACID,         P_("monster", "Plaguewrath"),                      "GENERAL",             10,       450, AI_ACIDUNIQ,             2,          20,          30,  IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RSTORM,        P_("monster", "The Flayer"),                       "GENERAL",             10,       501, AI_STORM,                1,          20,          35,  RESIST_MAGIC | RESIST_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_FROSTC,        P_("monster", "Bluehorn"),                         "GENERAL",             11,       477, AI_RHINO,                1,          25,          30,  IMMUNE_MAGIC | RESIST_FIRE                                    , UniqueMonsterPack::Leashed,                 0,               90, TEXT_NONE      },
	{  MT_HELLBURN,      P_("monster", "Warpfire Hellspawn"),               "GENERAL",             11,       525, AI_FIREMAN,              3,          10,          40,  RESIST_MAGIC | IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NSNAKE,        P_("monster", "Fangspeir"),                        "GENERAL",             11,       444, AI_SKELSD,               1,          15,          32,                 IMMUNE_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_UDEDBLRG,      P_("monster", "Festerskull"),                      "GENERAL",             11,       600, AI_STORM,                2,          15,          30,  IMMUNE_MAGIC |                                  IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_NBLACK,        P_("monster", "Lionskull the Bent"),               "GENERAL",             12,       525, AI_SKELSD,               2,          25,          25,  IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_COUNSLR,       P_("monster", "Blacktongue"),                      "GENERAL",             12,       360, AI_COUNSLR,              3,          15,          30,                 RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_DEATHW,        P_("monster", "Viletouch"),                        "GENERAL",             12,       525, AI_GARG,                 3,          20,          40,                               IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RSNAKE,        P_("monster", "Viperflame"),                       "GENERAL",             12,       570, AI_SKELSD,               1,          25,          35,                 IMMUNE_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BSNAKE,        P_("monster", "Fangskin"),                         "BHKA",                14,       681, AI_SKELSD,               2,          15,          50,  IMMUNE_MAGIC |               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_SUCCUBUS,      P_("monster", "Witchfire the Unholy"),             "GENERAL",             12,       444, AI_SUCC,                 3,          10,          20,  IMMUNE_MAGIC | IMMUNE_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_BALROG,        P_("monster", "Blackskull"),                       "BHKA",                13,       750, AI_SKELSD,               3,          25,          40,  IMMUNE_MAGIC |               RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_UNRAV,         P_("monster", "Soulslash"),                        "GENERAL",             12,       450, AI_SKELSD,               0,          25,          25,  IMMUNE_MAGIC |                                  IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_VTEXLRD,       P_("monster", "Windspawn"),                        "GENERAL",             12,       711, AI_SKELSD,               1,          35,          40,  IMMUNE_MAGIC | IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_GSNAKE,        P_("monster", "Lord of the Pit"),                  "GENERAL",             13,       762, AI_SKELSD,               2,          25,          42,                 RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_RTBLACK,       P_("monster", "Rustweaver"),                       "GENERAL",             13,       400, AI_SKELSD,               3,           1,          60,  IMMUNE_MAGIC | IMMUNE_FIRE | IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_HOLOWONE,      P_("monster", "Howlingire the Shade"),             "GENERAL",             13,       450, AI_SKELSD,               2,          40,          75,                 RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_MAEL,          P_("monster", "Doomcloud"),                        "GENERAL",             13,       612, AI_STORM,                1,           1,          60,                 RESIST_FIRE | IMMUNE_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_PAINMSTR,      P_("monster", "Bloodmoon Soulfire"),               "GENERAL",             13,       684, AI_SKELSD,               1,          15,          40,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_SNOWWICH,      P_("monster", "Witchmoon"),                        "GENERAL",             13,       310, AI_SUCC,                 3,          30,          40,                               RESIST_LIGHTNING                 , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_VTEXLRD,       P_("monster", "Gorefeast"),                        "GENERAL",             13,       771, AI_SKELSD,               3,          20,          55,                 RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_RTBLACK,       P_("monster", "Graywar the Slayer"),               "GENERAL",             14,       672, AI_SKELSD,               1,          30,          50,                               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_MAGISTR,       P_("monster", "Dreadjudge"),                       "GENERAL",             14,       540, AI_COUNSLR,              1,          30,          40,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING                 , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_HLSPWN,        P_("monster", "Stareye the Witch"),                "GENERAL",             14,       726, AI_SUCC,                 2,          30,          50,                 IMMUNE_FIRE                                    , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_BTBLACK,       P_("monster", "Steelskull the Hunter"),            "GENERAL",             14,       831, AI_SKELSD,               3,          40,          50,                               RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_RBLACK,        P_("monster", "Sir Gorash"),                       "GENERAL",             16,      1050, AI_SKELSD,               1,          20,          60,                                                  IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_CABALIST,      P_("monster", "The Vizier"),                       "GENERAL",             15,       850, AI_COUNSLR,              2,          25,          40,                 IMMUNE_FIRE                                    , UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_REALWEAV,      P_("monster", "Zamphir"),                          "GENERAL",             15,       891, AI_SKELSD,               2,          30,          50,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_HLSPWN,        P_("monster", "Bloodlust"),                        "GENERAL",             15,       825, AI_SUCC,                 1,          20,          55,  IMMUNE_MAGIC |               IMMUNE_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_HLSPWN,        P_("monster", "Webwidow"),                         "GENERAL",             16,       774, AI_SUCC,                 1,          20,          50,  IMMUNE_MAGIC | IMMUNE_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_SOLBRNR,       P_("monster", "Fleshdancer"),                      "GENERAL",             16,       999, AI_SUCC,                 3,          30,          50,  IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	{  MT_OBLORD,        P_("monster", "Grimspike"),                        "GENERAL",             19,       534, AI_SNEAK,                1,          25,          40,  IMMUNE_MAGIC | RESIST_FIRE |                    IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
// TRANSLATORS: Unique Monster Block end
	{  MT_STORML,        P_("monster", "Doomlock"),                         "GENERAL",             28,       534, AI_SNEAK,                1,          35,          55,  IMMUNE_MAGIC | RESIST_FIRE | RESIST_LIGHTNING | IMMUNE_NULL_40, UniqueMonsterPack::Leashed,                 0,                0, TEXT_NONE      },
	{  MT_INVALID,       nullptr,                                           nullptr,                0,         0, AI_INVALID,              0,           0,           0,  0                                                             , UniqueMonsterPack::None,                    0,                0, TEXT_NONE      },
	// clang-format on
};

} // namespace devilution
